Batch PDF Export

approvedunreviewed

by Dryden Bryson

Export a whole folder of notes to PDF, either one PDF per note or one combined PDF with a table of contents, bookmarks and working links.

↓ 65 downloadsUpdated 5d ago0BSD

πŸ“‘ Batch PDF Export

Export a whole folder of Obsidian notes to PDF, one file per note or one combined book.

Obsidian plugin Downloads Latest release Lint License: 0BSD

β†’ Get it from the Obsidian community plugins

Features Β· Install Β· Usage Β· Settings Β· Limitations Β· Contributing


✨ Features

πŸ–¨οΈ Faithful rendering

  • Looks like Reading view: math, Mermaid, callouts, code, tables, images and embedded notes
  • Clean light print style, whatever your theme
  • Dark or light code, set separately for inline code and code blocks
  • Keeps the styling of plugin content, including Code Styler code blocks
  • Title and date at the top of every note
  • Every note starts on a new page

πŸ“š Combined PDF extras

  • Title page and linked table of contents with page numbers
  • Choose the note order by dragging, or sort by name or date
  • Links between notes, headings and blocks work inside the PDF
  • PDF bookmarks grouped by folder
  • Page numbers, page size and orientation settings

Leave out any notes or subfolders you don't need, in either mode. Exports show a progress notice with a Cancel button, so long batches never lock you in, and finish with a button to open the PDF or folder.

πŸ“¦ Installation

[!IMPORTANT] Desktop only: Windows, macOS and Linux.

From Obsidian (recommended)

  1. Open Settings β†’ Community plugins β†’ Browse.
  2. Search for Batch PDF Export.
  3. Select Install, then Enable.

Or open the plugin listing directly.

Manual install
  1. Download main.js, manifest.json and styles.css from the latest release.
  2. Copy them into <Vault>/.obsidian/plugins/batch-pdf-export/.
  3. Reload Obsidian and enable the plugin in Settings β†’ Community plugins.
Beta builds with BRAT
  1. Install BRAT.
  2. Select Add beta plugin and enter Dryd33n/obsidian-batch-pdf-export.

πŸš€ Usage

  1. Right-click a folder and select Export folder to PDF, or run Export folder to PDF… from the command palette (Ctrl/Cmd + P).
  2. Pick One PDF per note or One combined PDF.
  3. Optionally, select Reorder and remove… (combined) or Remove notes… (one per note) to change the note order or leave notes out. See Note order.
  4. Optionally, open Advanced to change code colors or use your theme for this export. Select Save as default to keep the choices for next time.
  5. Select Export and choose where to save. When it finishes, select Open PDF or Open folder in the notice.

[!TIP] Want a single shareable document? Choose One combined PDF. You get a title page, a clickable table of contents, and bookmarks for every folder.

πŸ”€ Note order

Notes are exported in alphabetical order, each folder's notes before its subfolders. To change that, select Reorder and remove… in the export dialog:

  • Drag a note or folder, or use the ↑ ↓ buttons, to move it within its folder. Notes stay in their own folder, so the table of contents and bookmarks keep the folder structure.
  • Sort by name, date created or date modified, then adjust from there.
  • Select βœ• to leave a note or a whole folder out. Removed items are listed under Removed, where you can restore them.
  • Select Done to use the order for this export, or Save for next time to keep it for this folder. Saved orders follow notes when they are renamed or moved.

New notes are added at the end of their folder. Select Reset in the export dialog to go back to alphabetical order and forget the saved order.

βš™οΈ Settings

Defaults for every export, under Settings β†’ Batch PDF Export:

SettingDefault
Export modeOne PDF per note
Include subfoldersβœ… On
Page sizeA4, portrait
Margins15 mm
Page numbersβœ… On
Title page and table of contentsβœ… On
Date showndate property, else date modified
Date formatYYYY-MM-DD
Inline code colorsLight (also Dark, or Match app)
Code block colorsLight (also Dark, or Match app)
Use community theme and snippets⬜ Off
Render timeout10 s per note

⚠️ Limitations

  • Embedded PDFs, audio, video and canvases print as placeholders.
  • Links between separate PDFs work in desktop viewers (Acrobat, Foxit, SumatraPDF), but not in most browsers.
  • Code block options read from the fence line by some plugins (Shiki titles and line numbers, Advanced Codeblock line numbers) are not printed, the same as in Obsidian's own PDF export. Code Styler is supported.
  • Mermaid diagrams need your vault's Mermaid permission. The export asks for it if it's missing.

[!NOTE] Slow plugin content such as Dataview may need more time. Increase Render timeout if it comes out blank.

[!NOTE] Privacy: everything runs locally. PDFs are saved only where you choose, and nothing else outside the vault is touched.

🀝 Contributing

Issues and pull requests are welcome.

  • πŸ› Bugs: open an issue with your Obsidian version, OS and, if you can, a sample note that reproduces the problem.
  • πŸ’‘ Features: open an issue to discuss before starting large changes.
Development setup
git clone https://github.com/Dryd33n/obsidian-batch-pdf-export.git
cd obsidian-batch-pdf-export
npm install
npm run dev     # rebuild main.js on change

Copy main.js, manifest.json and styles.css into a test vault at .obsidian/plugins/batch-pdf-export/, then reload Obsidian.

Pull request checklist
  • Branch from master and keep each PR focused on one change.
  • npm run lint and npm run build pass with no errors.
  • Both export modes tested in Obsidian, and the PR describes what you tested.
  • No main.js or other build output committed.
  • Any UI text uses sentence case.
Code layout
PathContents
src/main.tsPlugin lifecycle
src/commands/Command and folder menu
src/ui/Modals and notices
src/export/Rendering, links, printing and PDF post-processing
src/utils/Electron, path and HTML helpers
Releasing

Bump version in manifest.json, package.json and versions.json, then push a tag with the same version (no v prefix). CI builds the plugin and creates a draft release for you to publish.


Made for Obsidian by Dryd33n Β· 0BSD license

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.