Markdown to PDF

Paste Markdown, see real pages, download a paginated PDF — paper, font size and margins in one row.

Markdown

Page preview

Waiting for Markdown

Paste Markdown to see the finished pages here — one sheet per page, with the footer page numbers the PDF will have.

How to use it

  1. Paste Markdown into the left box, or press “Open .md” to read a UTF-8 file up to 2 MB. There is no Convert button: the pages are rebuilt about a quarter of a second after you stop typing.
  2. Check the sheets on the right — each one is the final page, footer page numbers included. Change Paper (A4 / Letter), Font size (S / M / L) or Margin (standard / narrow) in the row above; the page count updates at once.
  3. Press “Download PDF”. The file is built on your device and the button briefly shows “Downloaded”. Nothing is uploaded, stored or written into the URL.

Example

Input

# Local first

Markdown stays **in this tab**. The PDF is built on your machine.

## What you get

- A4 or Letter pages with page numbers
- [Clickable links](https://example.com) in the PDF

| Option | Values |
| --- | --- |
| Paper | A4 / Letter |

> Rendering is local; nothing is uploaded.

```js
const pdf = await build(markdown);
```

Output

markdown.pdf — 1 page
Page 1 · A4 · Medium · Standard margin
Title: Local first
Footer: 1 / 1

The preview uses the same renderer as the PDF, so the sheets you see are the sheets you get. Text is drawn as a 2× image: crisp on screen and in print, but not selectable.

Rules, limits and known issues

  • Text in the PDF is an image: it cannot be selected, copied or searched, and screen readers skip it. When you need selectable text, export HTML from the Markdown editor and print that to PDF in your browser (vector output).
  • Images are not supported: ![alt](url) is drawn as [image: alt]. Remote images would taint the canvas (the export fails) and send requests to third-party servers.
  • No math, diagrams, footnotes, HTML blocks or syntax highlighting; code blocks only get a monospace font and a grey background.
  • Long code lines wrap at the character level — a PDF cannot scroll sideways and the font size is not shrunk to fit.
  • Pagination is this tool’s own: it will not match Word, Typora or the browser print dialog exactly. It never cuts a line, repeats table headers on new pages and keeps a heading with the following lines.
  • Fonts come from your device (no web fonts are downloaded), so letterforms differ slightly between systems; a machine without CJK fonts may show empty boxes.
  • Links are clickable (PDF annotations above the image) but not selectable; #anchor links do not jump inside the PDF.
  • Limits: 100,000 characters / 120 pages. Over 12 pages only the first 12 are previewed; the PDF still contains every page.
  • The PDF is always light: dark mode on the site does not change the exported paper.
  • The file picker accepts UTF-8 .md / .markdown / .txt up to 2 MB; other encodings may show garbled text because no encoding guessing is done.
  • Nothing is saved: reloading or closing the tab loses the text and the PDF.

Text and PDF tools that also run entirely inside this tab.