DEV Community

Mohammed Agrat
Mohammed Agrat

Posted on • Originally published at mdclaudy.com

Markdown to PDF: 8 methods compared (and why most of them disappoint)

I write everything in markdown. Specs, proposals, reports, the occasional
essay. And for years I've hit the same wall: getting markdown out as a
PDF that doesn't look like a 2009 browser printout.

I went deep on this — tried every method I could find — and ended up
building a tool to fix it. Here's the honest comparison of all 8 ways to
turn markdown into a PDF, ranked by how much pain each one costs you.

1. Browser print (Cmd+P → Save as PDF)

Free, instant, and looks like it. No control over typography, page breaks
land wherever, code blocks get clipped. Fine for a throwaway. Embarrassing
for anything you hand to a client.

2. Pandoc + default LaTeX

The quality ceiling is high. The floor is a weekend of YAML and template
debugging. pandoc input.md -o output.pdf works until you want it to look
like anything specific — then you're learning LaTeX.

3. Pandoc + Eisvogel template

Eisvogel is the best free markdown→PDF template out there. Genuinely good
output. You still need a working LaTeX install (~4GB) and comfort on the
command line.

4. md-to-pdf (npm)

npx md-to-pdf input.md. Chromium under the hood, so it's really
HTML-to-PDF. Decent for code-heavy docs, weak on print typography.

5. VS Code "Markdown PDF" extension

Convenient if you live in VS Code. Same Chromium engine, same limitations.

6. Marked 2 (Mac)

$13.99, lovely live preview, solid export. Mac-only, no templates beyond a
handful of CSS themes, no AI, no cloud library.

7. Online converters (markdowntopdf.com, CloudConvert)

Zero setup. Generic output, often watermarked, and you're uploading your
document to someone's server.

8. The one I built — mdclaudy

Full disclosure: this is mine, so weigh accordingly. After all the above,
I wanted Pandoc-grade output without the Pandoc tax. mdclaudy gives you 15
hand-designed templates, exports to PDF and DOCX, keeps markdown as the
source of truth, and has an optional AI layer for drafting. Free tier, no
card.


The honest verdict: if you're a developer who already has LaTeX
installed and enjoys the control, Pandoc + Eisvogel is hard to beat for
free. If you want a designed document without the setup, that's the gap I
built mdclaudy to fill.

Full version with screenshots of each method's output:
https://mdclaudy.com/blog/markdown-to-pdf

What's your markdown→PDF setup? Always looking for methods I missed.

Top comments (3)

Collapse
 
gimi5555 profile image
Gilder Miller

Pretty fair ranking overall, especially calling out browser print and online converters as good enough but not serious. Pandoc + Eisvogel is still the closest thing to a real standard if you’re okay living in LaTeX land.
I think the real split is control vs convenience, and everything Chromium-based basically loses on typography once you care about print.
Curious if you ever tried Typst as a Pandoc replacement, it’s starting to look like the clean middle ground.

Collapse
 
warf23 profile image
Mohammed Agrat

Spot on — anything Chromium-based hits a typography ceiling the moment you
care about print. No real ligatures, no hyphenation, widows and orphans
land wherever.

And yes, Typst is the most interesting thing here in years — basically
LaTeX output without the authoring pain. The way I see it though, Typst is
still its own markup; if you live in plain markdown you really want it as a
compile target, not another syntax to learn.

That's actually what I'm building with mdclaudy — markdown stays the source,
Typst-backed print engine underneath (ligatures, hyphenation, PDF/A) is on
the roadmap; today's export is still the Chromium path, so I won't oversell
it. Worth a try if you want designed output without touching the markup —
free tier, no card. Curious what you'd think of the template quality.

Collapse
 
gimi5555 profile image
Gilder Miller

Right now it’s template-first, no custom theming yet - keeping the focus on solid, predictable PDF output.
I like that approach; Markdown + Typst underneath feels like the sweet spot. Chromium export as a fallback makes sense, since that’s usually where things start breaking.
If the templates are strong, the main question becomes how consistent the PDFs are across different docs. Are you seeing any quirks there yet?