Paste Markdown or drop a .md file. Headings, paragraphs, lists, bold, italic, inline code, fenced code blocks, blockquotes, horizontal rules and link text render into a clean PDF with pdf-lib. Tables, images, task lists, footnotes and embedded HTML do not.
The output uses Helvetica for text and Courier for code, both built into every PDF reader, so the file is small and looks identical everywhere.
A README that has to go into a proposal packet. Meeting notes taken in Markdown that need to go out as a summary. A study guide written in a notes app that a classmate wants to print. Markdown is superb for writing and useless for handing to someone who does not know what the asterisks mean. The tool above turns the source into pages, without a docs pipeline and without the notes leaving your machine.
How to convert Markdown to PDF
Paste or drop
Paste text into the editor or drop a .md file onto the box. The file is read into memory; nothing is uploaded.
Review
The editor keeps the source visible, so a stray heading level or an unclosed code fence can be fixed before rendering.
Press Convert to PDF
The Markdown is parsed and laid out on standard pages with pdf-lib, and the file downloads.
Base fonts every reader has. No embedding, tiny file.
Deeper levels render as H3. Most documents never need more.
Notes, drafts and internal docs stay on your machine.
What renders, and what does not
The core of every README
- Headings with #, ## and ###
- Paragraphs separated by blank lines
- Bulleted lists with - or *, numbered lists with 1.
- **bold** and *italic*, mixed within a paragraph
- Fenced code blocks in Courier on a shaded background, and `inline code`
- Blockquotes with a left rule, horizontal rules with --- or ***
- Links as blue text
Extensions and anything needing the network
- Tables
- Images referenced by URL or path
- Task lists, footnotes, definition lists
- HTML embedded in the Markdown
- Nested lists deeper than one level (they flatten)
- Clickable link annotations (text is kept, the link is not live)
- Characters outside Latin-1: Cyrillic, Greek, Arabic, CJK and emoji are dropped
The line is drawn where a network fetch or a heavy layout engine would be needed. Staying inside it keeps the tool fast, offline and predictable: the same Markdown renders the same PDF every time, on every device.
Writing Markdown that prints well
- One idea per paragraph, blank lines between. Markdown joins consecutive lines into one paragraph, so a blank line is the only paragraph break. Long unbroken blocks render, but read badly on paper.
- Use heading levels in order. An H1 for the title, H2 for sections, H3 for subsections. Skipping levels makes the hierarchy hard to follow on a page with no sidebar.
- Keep code lines short. Long lines wrap in Courier, which stays readable but looks busy. Break at natural points or show shorter examples.
- Nest lists one level at most. The renderer indents one level cleanly; deeper nesting cramps.
- Put tables somewhere else. A small table can be written as a list. A real one belongs in a spreadsheet: Excel to PDF and merge.
Which Markdown this is
Markdown has dialects. The original 2004 syntax, CommonMark, GitHub Flavored Markdown with its tables and task lists, and the private extensions of every notes app. The renderer here targets the shared core that every dialect agrees on, which is also the part almost every real document uses: headings, paragraphs, lists, emphasis, code, quotes, rules and links.
- CommonMark core: headings, lists, emphasis, codeRendered
- Fenced code blocks with a language tagRendered, tag ignored
- GitHub tables and task listsNot rendered
- Footnotes, definition lists, mathNot rendered
- Notes-app callouts and wiki linksRendered as plain text
If a document leans on an extension, the quickest route is to simplify it: a two-column table becomes a list, a task list becomes a bulleted one, a callout becomes a blockquote. The content survives and the PDF renders the same way on every device.
Why convert at all
- Readers who do not know MarkdownA PDF renders the same for everyone
- Notes that must survive the appA PDF needs no reader that understands Markdown
- Portals and email that reject text filesPDF is accepted everywhere
- PrintingPlain Markdown prints as asterisks and hyphens
Why it renders in your browser
Markdown is where drafts live: internal docs, unpublished posts, private notes, meeting minutes. Uploading them to a rendering service to get a PDF hands a stranger's server the working text of things you have not released.
The tool is right above
Everything on this page runs in your browser. Scroll up, drop the file, and keep it on your machine.
Common questions
What people ask with a .md file selected.
01Which Markdown features are supported?
Headings H1 to H3, paragraphs, bulleted and numbered lists, blockquotes, horizontal rules, fenced code blocks, inline code, bold, italic and link text.
02What about tables and images?
Tables are not rendered in this version. Images referenced by URL or path are skipped, because the tool runs offline and never fetches anything.
03Can I convert a .md file directly?
Yes. Drop the file onto the box and its content is read locally into the editor.
04Are links clickable in the PDF?
Link text is rendered in blue, but live link annotations are not written in this version.
05Which fonts are used?
Noto Sans for body text, embedded in the file with bold and italic variants, and Courier for code. Both are built into every PDF reader, so the file is small and renders identically everywhere.
06Does it handle non-English text?
Latin, Greek and Cyrillic scripts, yes: the embedded Noto Sans covers them, and the result line counts any character it cannot show. Latin, Greek and Cyrillic text is set in an embedded Noto Sans. Characters the font lacks, such as CJK, Arabic and emoji, are shown as a replacement mark rather than silently dropped, and the result line counts them.
07Why did my nested list flatten?
The renderer indents one level cleanly and flattens deeper levels. Restructure deeply nested points as subsections with headings.
08Are my files uploaded anywhere?
No. Parsing and rendering happen in your browser.
09Is it free?
Free. Every tool, unlimited use, no signup.