Markdown to PDF slides
Paste Markdown, split slides with ---, click PDF. One slide per page, 1280×720, made in your browser.
How the conversion works
- Paste your Markdown into the editor. If it has no front matter, add
---marp: true---at the top (the templates show it); each---line after that starts a new slide. - Check the preview on the right. Text that runs past the bottom of a slide will be cut off in the PDF; split the slide or use a
<style scoped>block to shrink it. - Click PDF. The browser's print dialog opens with one slide per page; choose Save as PDF. Chrome and Edge produce the best result; Safari and Firefox work with margins set to none.
Plain Markdown, not written for Marp?
It still converts: headings, lists, tables, code and images render, and every --- becomes a slide break. To get one slide per heading instead, put a --- before each ##. Speaker notes are HTML comments and stay out of the PDF.
Other routes
| Need | Use |
|---|---|
| A PDF from the command line, in a script or CI | marp deck.md --pdf (guide) |
| PowerPoint instead of PDF | marp deck.md --pptx, or pandoc for editable slides (comparison) |
| Notes as PDF annotations | marp-cli --pdf-notes |
| A deck someone can open in a browser | the HTML button here, or marp deck.md |
This page is the Marp online editor with the PDF step in front. The cheat sheet lists the syntax.
Questions
Is the PDF made on a server?
No. The slides are rendered in your browser and printed through its own print dialog. Nothing is uploaded.
Why are my images missing in the PDF?
Images must be reachable from the browser: a public URL, or a data URI. Local file paths from your disk cannot be read by a web page; for those use marp-cli with --allow-local-files.
Can I set the page size?
The slides are 16:9 at 1280×720 and the print page matches. For 4:3, add size: 4:3 to the front matter; the print page follows.
Does it keep speaker notes?
Notes are not printed. marp-cli's --pdf-notes adds them as PDF annotations, and --notes exports them as text.