dingzy5373 downloadsExport a folder of notes to a single PDF with an outline, contents page, cross-references and unfolded callouts.
Export all notes in a folder of your Obsidian vault to a single PDF.
## and ### headings) and a contents page with page numbers.From the community directory (recommended)
You can also open the plugin's page: community.obsidian.md/plugins/batch-export.
Manually
main.js, manifest.json and styles.css from the latest release.<vault>/.obsidian/plugins/.batch-export there and put the three files in it.Beta versions: install BRAT and add dingzy53/obsidian-batch-export.
Update or remove: select Check for updates or Uninstall in Settings → Community plugins.
The PDF has an outline (note, ##, ###), a contents page, and clickable cross-references. Output is always light, whatever your Obsidian theme. The plugin only reads your notes and never writes into the vault.
Page size, margins, font size, outline depth, contents depth (default for new exports), render timeout.
fs. It also writes short-lived scratch files to the system temp folder and reads the finished PDF back to compute contents-page numbers and fix link positions. It never writes into your vault.print-to-pdf IPC call, the same one Obsidian's built-in PDF export uses. Nothing else uses IPC.vault.cachedRead), never modified.npm install
npm run dev # watch build
npm run build # type-check and bundle to main.js
npm run lint
npm test
To try a build, symlink main.js, manifest.json and styles.css into <vault>/.obsidian/plugins/batch-export/. See AGENTS.md for design notes.
npm version patch # bumps package.json, manifest.json and versions.json, commits and tags
git push --follow-tags
The tag triggers the Release workflow, which lints, tests, builds and attaches main.js, manifest.json and styles.css to a GitHub release.
MIT © 2026 Ding Zheng Yuan