Convert Markdown to PDF
Markdown to PDF renders a CommonMark .md file to a PDF with WeasyPrint, using a font stack that covers Chinese, Japanese and Korean text. The file must be UTF-8.
Drag and drop files here, or click to choose
Accepts MD · up to 500.0 MB per file · up to 20 files at once
You can also paste a file with Ctrl/Cmd+V, or from the clipboard menu.
Markdown to PDF parses CommonMark with `pulldown_cmark`, wraps it as HTML (including a Noto Sans CJK font stack), and prints that HTML with WeasyPrint. Upload a `.md` file. The API also accepts a ZIP of Markdown plus assets; the website file picker only lists `.md`.
This is not a Pandoc replica and not a slide engine. Tables, strikethrough and task lists render; other GitHub-specific extras such as footnotes and emoji shortcodes are not converted. Pages are A4 with 2 cm margins. JavaScript in fenced HTML is not executed.
Non-`.md` / non-`.zip` names are rejected. UTF-8 is required for the Markdown path. Encrypted PDFs are the wrong input; start from Markdown.
If you already have HTML, HTML to PDF skips the CommonMark step. If you have a PDF and want Markdown out, that is PDF to Markdown, the other direction.
Features
- CommonMark (`pulldown_cmark`) then WeasyPrint
- CJK-capable HTML wrapper; not Pandoc
- Website accepts `.md`; API also allows a ZIP
- Anonymous API at /api/v1/convert/markdown/pdf
When to use this tool
- Print a README or spec to PDF
- Turn OCR Markdown into a printable PDF
- Share a CommonMark note as a paginated file
How do I convert Markdown to PDF?
- Upload a UTF-8 `.md` file.
- Click Process. There are no theme or paper fields on this page.
- Download the PDF.
- Check headings, lists, and CJK glyphs. Complex HTML embeds may not print.
Limits and edge cases
- No Pandoc filters, no JS, no theme picker
- Website picker does not expose ZIP even though the API allows it
- Must be UTF-8 Markdown
- Upload limit on this website: 500 MB per file, sent in chunks above about 95 MB. A single direct API request body is capped at 100 MB.
Examples
- A UTF-8 Markdown heading and list usually become a short PDF with those styles
- A .txt renamed to .md may pass the extension check but still need valid UTF-8
Privacy for this tool
Files are uploaded over HTTPS, processed in memory or a short-lived temporary directory on our servers, and deleted when your result is ready. We do not keep copies for later browsing, training, or advertising profiles. See the Privacy Policy for retention details and AdSense cookie disclosures.
Frequently asked questions
- Does it run Mermaid or JS widgets?
- No. WeasyPrint prints the HTML from CommonMark. Scripts do not run.
- Why was my file rejected?
- The name must end in .md or .zip. Other extensions are rejected as an unsupported file type.
- Can I send OCR Markdown here?
- Yes if it is a .md file. That is one of the few useful hand-offs from OCR on this site.
- Is GitHub Flavored Markdown fully supported?
- Partly. Tables, strikethrough and task lists are enabled on top of CommonMark; footnotes and emoji shortcodes are not.
Last updated:
Call this from code
Every tool on this site is a plain REST endpoint - no account or API key needed for anonymous use. Built for AI agents and developers as much as for browsers.
curl -X POST "https://pdf123.xyz/api/v1/convert/markdown/pdf" \
-F "[email protected]" \
-o output.pdfAlso available as an MCP tool for agent clients that speak Model Context Protocol (JSON-RPC 2.0 over POST /mcp). Full API reference
Use it from an AI agent
SkillClaude Code, Codex, Cursor and other AI agents can run Markdown to PDF for you with this skill: /skills/pdf123-markdown-to-pdf.md
Files are used only for this processing job and deleted automatically afterward.