Guide

Notion to PDF, properly

Notion's PDF export is the most-asked feature with the least love. On free it stops at a single page. On paid plans it ships, but with no table of contents, no margin control, page-breaks that land mid-table, and mermaid blocks that render as text. Here is what the native exporter actually does, where it falls down, and the two-minute fix - using an export every Notion plan already has.

·6 min read
Open the converter

What Notion's native PDF export actually does

Open any page in Notion, click ••• in the top-right, and you get an Export menu. The PDF option is gated:

  • Free plan: the current page only. The toggle forInclude subpages is greyed out. Databases inside the page do not export with their rows; they appear as a single "Untitled" placeholder.
  • Plus and up: subpages are allowed. Page size and scale settings appear; margins, headers, footers and footnotes do not.
  • Output: the in-app theme, the in-app font, no cover page, no table of contents, no page numbers. The PDF reads like a Notion screenshot.

For a quick personal copy that is fine. For anything you send to a client, a teacher, or someone signing it - it is not. Four specific things go wrong, in roughly the order they will bite you.

1. Page breaks land in the middle of tables

Notion has no page-break controls in its export. The PDF engine paginates by raw content height, so a table that almost fits breaks across pages with the header on one side and the rows on the other. There is no page-break-before equivalent you can set on a block. The only workaround is to insert empty paragraphs by hand until the break happens to land where you want, and rebuild that scaffolding every time the document changes.

2. There is no table of contents

Notion supports a ToC block inside the app. It does not survive the PDF export as a clickable element - it prints as a static list of headings without page numbers and without anchor links. For a document of any length, that is the single thing you most wanted from the PDF.

3. Mermaid diagrams export as code blocks

Mermaid in Notion is a code block with a fenced ```mermaid language tag. The in-app renderer turns it into a diagram; the PDF exporter does not. The diagram appears in the PDF as the raw mermaid source.

4. No way to set typography, margins or branding

Notion's PDF inherits the in-app theme. You cannot change the serif/sans pair, the heading sizes, the margin width, the link colour, or anything else. For a personal note this does not matter. For a proposal, a report, an invoice or a memo, it matters a lot.

The two-minute alternative

Every Notion plan, including free, has Export as Markdown & CSV. It produces a zip containing every page you ticked, with images intact and databases as CSVs. The Markdown is messy - filenames like My Page a1b2c3d4e5f67890a1b2c3d4e5f67890.md, links that all point at suffixed paths - but it is complete and correct. The flow:

  1. In Notion, open the page (or workspace root for everything). Click ••• in the top right → Export → format Markdown & CSV. Tick Include subpages. Click Export.
  2. Open the Notion to PDF tool and drop the zip.
  3. Tweak the cleaning toggles if you want (defaults are sensible). Hit Open in the converter. Paste. Pick a template and a design. Export PDF.

The awkward bits, in order of how much they will bite you

Toggle blocks

Notion's toggles do not exist in Markdown - they export as a heading or paragraph followed by their content. Which is what you want, because PDFs do not toggle. If your original page used toggles to hide long sections, every section is now visible. If that matters, edit the Markdown before exporting; if it does not, ignore.

Callouts

Notion exports callouts as blockquotes with a leading emoji: > 💡 The thing to remember. Markdown does not render the emoji as a styled callout - just as text. The tool can strip the emoji and leave a clean blockquote; the converter renders blockquotes nicely. If you want a styled callout box in the PDF, the converter has one - keep the emoji and the rendering converts it to the styled component.

Databases

A Notion database export produces two CSV files per view: one with visible columns, one with _all in the name containing every column. The tool has an off-by-default toggle to inline each CSV as a Markdown table. Off by default because long databases blow the document up - turn it on if your database has fifty rows, leave it off if it has five thousand and you only wanted the page.

Images

Images come out as files in a folder next to the Markdown, with relative paths. The tool embeds them inline as data:URLs so the converter does not need to fetch anything, and so the resulting PDF travels as a single file. The one cap: individual images over 5 MB are skipped with a warning - they would push the document past sensible bounds. Resize first if you need them.

Math and equations

Inline math exports as $E = mc^2$, block math as a fenced ```latex block. The converter renders both as monospace text in the PDF - it is not a TeX engine. If your document is math-heavy, this flow is not the right one; reach for Pandoc with a LaTeX backend instead.

Embeds and bookmarks

Anything Notion handled with an iframe - Figma, YouTube, Google Sheets, Loom - exports as a bare URL. A PDF cannot embed live content, so this is correct. If you want a preview, screenshot the embed in Notion first and drop the image into the editor in the converter.

Bulk: exporting a whole workspace as PDF

Notion has no "one PDF for everything" button. The closest path:

  1. Workspace settings (⌘, / Ctrl+,) → Settings Export all workspace content Markdown & CSV.
  2. You get a download with one zip per top-level page (or one big zip containing those, depending on workspace age).
  3. Drop each zip into the tool, one at a time, with Flatten subpages on. Each produces a single PDF covering that whole branch.
  4. If you genuinely want one PDF for the whole workspace, concatenate the resulting PDFs using your OS print dialog ("Save as PDF" with multiple files), or any PDF merge tool. Splitting at the top-level page boundary is usually what you want anyway - workspaces are not single documents.

What about the Notion API?

The official Notion API can read pages and their blocks as JSON, and you can convert that JSON to Markdown with a library like notion-to-md. It is more code than the Markdown export flow, requires an integration token, and produces output that needs the same cleanup - UUIDs in IDs, image URLs that expire after an hour, callouts as plain blockquotes. Use it if you need to script bulk exports on a server. For ad-hoc "I just need this one PDF" work, the Markdown export plus this tool is faster.

What about Notion's "Export to PDF" on Plus and up?

It works, and for short single pages it is fine. The differences you get from going through the Markdown export plus the converter:

  • Real ToC with page numbers and clickable anchors. Notion's PDF has neither.
  • Page-break controls. Drop a marker before a wide table or a section break and the PDF respects it. Notion paginates by raw block height.
  • Templates and themes. Eleven document templates, ten designs, twelve font pairings. Notion has its in-app theme.
  • Cover pages. The converter ships five cover layouts. Notion has none.
  • DOCX too. Same source, switch the export toggle, ship a Word file. Notion does not export DOCX.
  • Mermaid as diagrams. Already covered above.

One thing the native exporter does better

Print-style URL footnotes. Notion's PDF turns every link into a numbered footnote with the URL at the bottom of the page - the same behaviour academic and print contexts expect. The converter does not do this by default. If that is the single thing you need, Notion's PDF is the right tool for that one document.

FAQ

Does this work for shared / public Notion pages?

Yes - publish the page in Notion, then export it the same way (Export as Markdown & CSV) and drop the zip. You do not need to share the URL with the tool; everything happens from your browser using the file you already have.

What if my zip is huge?

The tool caps at 50 MB per zip. Above that, split the export - in Notion, export individual top-level pages rather than the whole workspace at once. Three 30 MB exports produce three good PDFs faster than one 90 MB attempt that times out the browser.

Will this work on mobile?

The Notion app on iOS and Android does not have a Markdown export. You need a desktop or the web app. The tool itself runs on mobile browsers, but the export is the bottleneck.

What about Notion AI's "Export to PDF"?

Notion AI does not have a separate PDF export. It uses the same underlying exporter as the rest of the app - the limitations here apply.

Why not a Chrome extension?

A browser extension that scrapes the open Notion page is possible, but Notion's DOM is hostile to scraping (virtualised rendering, internal IDs, lazy block loading) and the result is worse than the official Markdown export. Going through Notion's own exporter and cleaning up is more reliable, and it keeps the tool installable as nothing more than a webpage.