Print just part of a note — the selection, or the section under the cursor — to paper or PDF through the system print dialog, rendered as in Reading view, with page numbers.
Print just part of a note — the text you selected, or the section the cursor is in — to paper or to PDF.
Obsidian can export a whole note to PDF, but it cannot print, and it cannot print part of a note at all. This plugin renders exactly the part you choose the way Reading view does — callouts, tables, code, images, embeds, diagrams — and hands it to the system print dialog, where you pick a printer, or save it as a PDF.

| You have… | It prints |
|---|---|
| A selection in the editor | The selected lines. Within a single line, exactly the words selected. |
| No selection | The section the cursor is in: its heading and everything under it, down to the next heading of the same or a higher level. |
| A selection in Reading view | The blocks the selection touches — paragraphs, lists, tables, callouts — whole. |
| No selection in Reading view | The section at the top of the window. |
| Print note | The whole note, without its properties. |
Above the first heading, "the section" is the text there; at the very top of a note that starts with a heading, it is the whole note.
Command palette: Print selection or current section and Print note — bind either to a hotkey in Settings → Hotkeys (search "Print Section"). Right-click in the editor: the menu names what it is about to print — Print selection, or Print section "Budget 2026". File menu: Print note, in the file explorer and in a note's ⋯ menu, for notes that are not even open. Ribbon: a printer icon, same as the first command. Right-click the ribbon to hide it if you prefer the keyboard.
Want it as a button by your text? Toolbar plugins such as Editing Toolbar or Commander can host any command — add Print selection or current section to one.
A run of lines cut out of a note does not always make sense on its own as Markdown. The plugin repairs the cut before rendering, so what prints is what you see:
# comment in a shell script never becomes a heading.**bold** or a link never prints as stray punctuation.Sections are found from the note's live text, not from Obsidian's metadata cache, which only catches up after a save. A heading you typed a second ago is already a section boundary.
3 / 7, Page 3 of 7 or just 3 at the foot of each page, and optionally the note's name — or the note and section — at the top.cssclasses carry over.The Budget section from the screenshot above, as it comes out of the printer, with the note and section at the top and the page number at the foot:

| Setting | Default | |
|---|---|---|
| Include subsections | On | Off stops a section at the next heading of any level. |
| Note name as title | Off | Starts the printout with the note's name, as Export to PDF can. |
| Light colours | On | Off prints the theme you see on screen. |
| Background colours | On | Off lets the printer leave out shading to save ink. |
| Text size | 100% | Relative to your editor's text size. |
| Margins | 15 mm | On every side; the header and page numbers sit inside the margin. |
| Header | None | Note name, or note name › section. |
| Page numbers | 3 / 7 | Or Page 3 of 7, 3, or none. |
| Editor menu / File menu | On | Whether the right-click entries appear. |
From Obsidian (recommended): Settings → Community plugins → Browse → search for "Print Section".
Manual: download main.js, manifest.json and styles.css from the latest release into <vault>/.obsidian/plugins/print-section/, then enable the plugin in Settings → Community plugins.
HTML Table Toolbar and HTML Font Toolbar — Word-style toolbars for HTML tables and inline text styling. Print Section needs neither, and they need nothing from it; their tables and styled text print as they appear on screen.
No build step — main.js is plain CommonJS, loaded by Obsidian as-is.
node --test "tests/*.test.js"
powershell -File scripts/syncToVault.ps1
then Ctrl+P → Reload app without saving in Obsidian.
Tests come in two layers: the note-structure engine — front matter, headings, sections, and the repairs that make a fragment render on its own — through module.exports.__internals; and whole printouts run against a fake window and document, checking what reaches window.print() and that the theme, title, page settings and DOM are all put back afterwards, however the printout ends.
If this plugin is useful to you, consider supporting development:
Made by Charette AI Group.
MIT © 2026 Charette AI Group, LLC