Convert to PDF guide
Convert a Markdown README to PDF
Updated
Short answer: Drop the .md file into Markdown to PDF; headings, lists, tables, links, quotes and code blocks are rendered and laid out as pages.
Sharing a README with someone who doesn't use GitHub, attaching documentation to a proposal, or printing notes: Markdown is pleasant to write but shows raw asterisks and hashes when opened as plain text.
Step by step
Step 1: Save the file with a .md or .markdown extension, in UTF-8, the default in most editors.
Step 2: If it includes images, embed them as data URLs or accept that they'll be left out: links to images elsewhere aren't fetched.
Step 3: Open Markdown to PDF and drop the file.
Open Markdown to PDF(runs on our server)Step 4: Download the PDF and check code blocks, tables and long lines.
Step 5: To combine several Markdown files, such as chapters or a docs folder, convert each one and merge the PDFs in order.
Open Merge PDF(runs on your device)
Why this works, and what to watch for
Markdown to PDF renders standard Markdown plus the two extensions people use most: pipe tables and fenced code blocks. Headings become real headings, emphasis becomes bold and italic, lists are indented, links stay clickable, quotes are set off, tables get ruled cells and code appears in a shaded monospaced block. The document is laid out as pages by LibreOffice, so the text in the PDF is real text, selectable and searchable.
Images are the usual surprise. A README normally refers to images by relative path (docs/screenshot.png) or by web address (badges, hosted screenshots). The converter only receives your .md file, not the folder around it, so relative paths have nothing to point to, and for your privacy it never fetches anything from other websites. Badges and remote images therefore come out blank. If an image matters, embed it in the file as a data URL.
GitHub adds features of its own on top of Markdown. Task lists (- [ ]) come through as plain text, and anything that depends on GitHub's renderer, such as Mermaid diagrams, callouts written as > [!NOTE] and emoji shortcodes, appears as its source text. Raw HTML in the file is sanitised for safety, so scripts and external styles are removed.
Code isn't syntax-highlighted, and long lines in code blocks aren't re-wrapped, because wrapping can change what code means. Break very long commands across lines before converting so they don't run into the margin.
If you want the file exactly as typed, with every # and * visible, for a code review for example, use Text to PDF instead, which preserves the raw text and indentation.