Markdown to PDF Converter - Free MD to PDF Online, No Upload | LazyTools
PDF Tools

Markdown to PDF Converter — Free, Live Preview, No Upload

Write or paste Markdown on the left, see the rendered PDF preview on the right, and download a polished PDF in one click. Supports GitHub Flavored Markdown (GFM), syntax-highlighted code blocks, tables, task lists, 4 themes, and 4 page sizes. Everything runs in your browser — your content never leaves your device.

Free forever Live split preview GitHub Flavored MD Syntax highlighting A4 / Letter / Legal / A3 No upload · No signup
ADSENSE — 728×90 LEADERBOARD
MD → PDF
Theme:
Page:
Font size:
Markdown Editor .md — type or paste below
Live Preview Updates as you type
0 chars · 0 words
ADSENSE — 728×90 LEADERBOARD
Have images you want to merge into a single PDF?

The Image to PDF Converter lets you combine JPG, PNG, and WebP images into a single PDF with drag-and-drop page reordering. Same browser-based, zero-upload approach — completely private.

Image to PDF →
4.9
★★★★★
Based on 2,140 ratings
Found this useful? Leave a rating!
✔ Key Features

Why LazyTools MD to PDF beats every other converter

Most converters are upload-and-wait boxes. This one gives you a live editor, instant rendering, full GFM support, and complete privacy — all in your browser.

Live Split-Pane Preview

As you type in the left pane, the right pane renders your Markdown in real time. No button clicks, no page reloads. See exactly how your headings, tables, and code blocks will look in the PDF before you download. The most useful feature that the majority of online converters completely lack.

Full GitHub Flavored Markdown (GFM)

Supports the complete GFM specification: tables with alignment, task lists with - [ ] and - [x] checkboxes, strikethrough with ~~text~~, fenced code blocks with language identifiers, and automatic URL linking. Write exactly as you would for a GitHub README or GitLab wiki and get identical rendering in PDF.

Syntax Highlighting for 180+ Languages

Code blocks with language identifiers (```python, ```javascript, ```bash) render with full syntax colour highlighting via highlight.js. Supports JavaScript, TypeScript, Python, Java, Go, Rust, C/C++, C#, PHP, Ruby, HTML, CSS, SQL, Bash, YAML, JSON, Dockerfile, and 170+ more. Code in your PDF is readable, not just monospace grey.

4 Themes — GitHub, Dark, Solarized, Minimal

Switch between themes in the toolbar. GitHub matches GitHub.com's rendering exactly — familiar to developers. Dark uses a dark background with light text for documentation portals. Solarized applies the classic warm-toned Solarized Light palette. Minimal strips colour for clean, print-optimised black-on-white output.

A4, Letter, Legal & A3 Page Sizes

Choose the right page size for your audience. A4 (210×297mm) is the international standard used everywhere except North America. US Letter (8.5×11in) is the default in the US and Canada. Legal (8.5×14in) is used for contracts and legal filings. A3 (297×420mm) fits wide tables or landscape presentations. All sizes support portrait orientation.

100% Private — Nothing Leaves Your Browser

PDF24, pdfforge, and markdowntopdf.com all upload your file to their servers. This tool does not. Markdown parsing, HTML rendering, and PDF generation all happen locally using marked.js and your browser's native print engine. Safe for internal docs, client proposals, confidential notes, and anything you wouldn't upload to a stranger's server.

Open .md Files Directly

Click “Open .md File” to load any .md or .markdown file directly from your computer. The file loads into the editor, renders in the preview, and is ready to download as PDF in seconds. Handles UTF-8 content including international characters, emoji, and special symbols without mangling.

Adjustable Font Size & Word / Character Count

Control body font size from 13px (compact) to 19px (accessible) to match your audience — useful when preparing documents for print, presentations, or readers with accessibility needs. The live character and word counter at the bottom helps you hit target lengths for academic submissions, blog posts, or documentation style guides.

📋 How to Use

Convert Markdown to PDF in 3 steps

No account, no installation. Works on Chrome, Firefox, Safari, and Edge on any operating system.

Write, paste, or open your Markdown

Type your Markdown directly in the left editor pane, paste copied content (from VS Code, Obsidian, Notion export, GitHub, or any Markdown source), or click Open .md File to load a .md or .markdown file from your computer. A sample document is available via Load sample if you want to explore the formatting before adding your own content. The preview on the right updates instantly as you type — no convert button needed.

Choose your theme and page size

Use the toolbar dropdowns to select your output settings. Theme controls the visual style: GitHub for a familiar developer look, Dark for dark-mode output, Solarized for the classic warm palette, or Minimal for clean print. Page size controls the PDF dimensions: A4 for international documents, US Letter for North American recipients, Legal for contracts, A3 for wide tables. Font size adjusts readability. All changes reflect in the live preview immediately so you can judge the output before downloading.

Click Download PDF

Click Download PDF. Your browser opens the system print dialog (or directly triggers a PDF download in some browsers) with your document pre-formatted and ready. Select Save as PDF as the destination (it should already be selected). The filename defaults to the first H1 heading in your document, or document.pdf if no H1 is present. On Chrome and Edge, the PDF saves directly without the print dialog. On Firefox and Safari, select “Print to PDF” or “Save as PDF” in the dialog.

Pro tips for perfect Markdown PDF output

For fenced code blocks, always specify the language: ```python not just ```. This enables syntax highlighting. For tables that are too wide, switch to A3 page size or use the Minimal theme which renders tables in a more compact style. For long documents, add an --- horizontal rule before major sections to create natural visual breaks. For technical documentation intended for GitHub: use the GitHub theme, which matches GitHub.com’s rendering virtually 1:1.

📖 Markdown Syntax Reference

Common Markdown syntax — quick reference cheat sheet

New to Markdown? Here are the most important formatting patterns. Everything below renders correctly in this tool.

Headings
# Heading 1Largest heading (H1)
## Heading 2Section heading (H2)
### Heading 3Sub-section (H3)
#### Heading 4Minor heading (H4)
Text Formatting
**bold**Bold text
*italic*Italic text
~~strike~~Strikethrough
`inline code`Inline code
[text](url)Hyperlink
![alt](url)Image
Lists
- itemUnordered list (use - or *)
1. itemOrdered list
- [ ] taskUnchecked task (GFM)
- [x] doneChecked task (GFM)
Code Blocks
```pythonPython (highlighted)
```jsJavaScript (highlighted)
```bashBash / shell
```sqlSQL queries
```jsonJSON data
```Plain code (no highlight)
Tables (GFM)
| Col1 | Col2 |Header row
|------|------|Separator row
| A | B |Data row
|:-----|-----:|Left / right align
|:----:|Centre align
Block Elements
> textBlockquote
---Horizontal rule
[blank line]New paragraph
\\ (two spaces)Line break
<!-- comment -->HTML comment (hidden)
📊 Comparison

LazyTools vs PDF24, pdfforge, markdowntopdf.com, APITemplate, DevineTools, MDConvert

FeatureLazyToolsPDF24pdfforgemarkdowntopdf.comAPITemplateDevineTools
Live split-pane preview
100% browser-side (no upload)✖ Server✖ Server✖ Server
GitHub Flavored Markdown (GFM)✔ FullPartialPartial
Syntax highlighting✔ 180+ langs
Multiple themes✔ 4 themes1 colour mode
Multiple page sizes✔ A4/Letter/Legal/A3
Open .md file directly
Markdown syntax reference✔ Built-in
Font size control
No signup required
💡 Use Cases

Who uses Markdown-to-PDF conversion and why

Markdown is the universal writing format for technical people. Here’s when and why the PDF export matters.

README.md to PDF for portfolios and clients

Converting a GitHub README to PDF is one of the most common use cases. Clients, hiring managers, and stakeholders often want a document they can open without a GitHub account. Export your project README as a formatted PDF and attach it to proposals, project briefs, or portfolio packages.

Technical documentation for distribution

API documentation, system architecture guides, deployment runbooks, and developer onboarding guides are routinely written in Markdown. Converting to PDF gives you a version that can be emailed, attached to Jira tickets, stored in SharePoint, or printed for on-site distribution without requiring Markdown rendering infrastructure.

Academic papers and research notes

Students and researchers using Obsidian, Notion, Zettlr, or plain text editors for note-taking often need to submit assignments or share research in PDF. Converting Markdown notes to PDF preserves structure, code snippets, and tables in a format accepted by submission portals and email.

AI-generated content export

ChatGPT, Claude, and Gemini output Markdown by default. When you ask for a report, plan, or document, the response uses headings, bold text, lists, and code blocks. Copy the Markdown output, paste it here, and download it as a polished PDF in seconds. No reformatting required.

Blog drafts and content pipelines

Writers using Hugo, Jekyll, Ghost, or any static site generator write in Markdown. Before publishing, sharing a PDF draft with editors, clients, or reviewers gives them a readable document they can annotate and return. Convert your draft post to PDF, share it for review, then publish the original Markdown to your site.

Meeting notes and project documentation

Teams using Confluence, Notion, or Linear often export meeting notes in Markdown for archiving or sharing with stakeholders who don’t have access to the workspace. A quick Markdown-to-PDF conversion turns raw notes into a shareable, print-friendly record of decisions and action items.

CVs and resumes written in Markdown

Many developers maintain their CV as a Markdown file in a Git repository, making it easy to version-control, diff changes, and collaborate. Converting to PDF creates the submission-ready file for job applications without needing Word or a design tool. Use the Minimal theme for clean, professional output.

eBook chapters and long-form guides

Technical writers and self-publishers often draft eBook chapters in Markdown, then combine and export them. A single chapter can be converted to PDF to share with reviewers or beta readers. For multi-chapter exports, paste all chapters sequentially (separated by ---) into the editor and export as one document.

📐 Complete Guide

What Is a Markdown File (.md)? What Is a PDF? Why Convert Between Them?

If you’ve used GitHub, written documentation, taken notes in Obsidian, or exported anything from ChatGPT or Claude, you’ve encountered Markdown. If you’ve ever sent a document to someone who can’t open it properly, or printed something that looked wrong, you’ve experienced the problem that PDF solves. Understanding both formats — and why the conversion matters — makes you a more effective writer and communicator.

What Is a Markdown File (.md)?

A Markdown file is a plain text file that contains formatting instructions written in Markdown syntax. The file extension is .md (or occasionally .markdown). It was created by John Gruber and Aaron Swartz in 2004 with a clear design goal: a document that is as readable in its raw form as it is when rendered. Unlike HTML (which uses tags like <h1> and <strong> that are difficult to read as raw text) or Word documents (which are binary files incomprehensible without the application), a Markdown file is readable by any human even in a plain text editor.

The syntax is deliberately minimal. A # at the start of a line makes a heading. Wrapping text in **double asterisks** makes it bold. A line starting with - creates a bullet list. Code is wrapped in backticks. A table is drawn using pipe characters. These conventions are so intuitive that many people write Markdown without knowing it has a name — email conventions like asterisks for emphasis directly influenced Markdown’s design.

Because Markdown is plain text, it works with every tool in the developer ecosystem: version control (Git tracks every character change), search (grep can search your notes), scripting (sed, awk, Python can process them), and universal compatibility (any editor on any OS can open a .md file without installing anything). This is why Markdown became the lingua franca of technical writing — from GitHub READMEs and Stack Overflow posts to technical documentation platforms like GitBook, MkDocs, and Docusaurus.

What Is GitHub Flavored Markdown (GFM)?

Standard Markdown (or CommonMark, its modern formal specification) covers the basics: headings, bold, italic, lists, links, images, code, and blockquotes. GitHub Flavored Markdown (GFM) extends this with features that technical writers frequently need:

  • Tables — pipe-syntax tables with optional column alignment
  • Task lists- [ ] for unchecked, - [x] for checked checkboxes
  • Strikethrough~~text~~ renders as struck-through text
  • Fenced code blocks with language identifiers```python enables syntax highlighting
  • Autolinks — bare URLs like https://example.com become clickable links automatically

GFM is now the dominant Markdown dialect. It is used by GitHub, GitLab, Bitbucket, VS Code, Obsidian, Notion (exports), Joplin, Bear, Zettlr, and most modern Markdown-aware platforms. This tool implements the full GFM specification via the marked.js library.

What Is a PDF File?

PDF (Portable Document Format) was created by Adobe in 1993. The core idea was straightforward but revolutionary: a file format that would look identical regardless of the operating system, software version, printer, or screen used to view it. Before PDF, sharing formatted documents was a nightmare of font substitutions, layout shifts, and printer-specific rendering. PDF solved this by embedding everything the document needed to render correctly — fonts, images, vector graphics, colour profiles — within the file itself.

PDF files are structured around a page model: each page has a fixed width, height, and coordinate system. Content is positioned at absolute coordinates using a PDF graphics model. Text is rendered using embedded (or referenced) fonts. This fixed-layout nature is what makes PDF reliable for printing and sharing but less suitable for editing. You cannot reflow PDF text to a different screen size the way HTML does. But for a document that needs to look the same everywhere, every time — a contract, a report, a CV, a printed manual — PDF is the only practical choice.

Modern PDF supports a rich feature set: clickable hyperlinks and internal anchors, embedded bookmarks and table of contents (the Outline panel in PDF readers), metadata (title, author, creation date), digital signatures, form fields, accessibility tags (for screen readers), and print job instructions (page ranges, duplex settings). The PDF format is now an open ISO standard (ISO 32000), maintained by the PDF Association, not exclusively by Adobe.

Why Convert Markdown to PDF? The Core Use Cases

The tension between Markdown and PDF is simple: Markdown is ideal for writing; PDF is ideal for distributing. The conversion point is wherever your document leaves your writing environment and goes to someone else.

Universal readability. Not everyone has a Markdown viewer. Opening a .md file in Notepad on Windows shows raw symbols. PDFs open correctly in every browser, on every phone, on every operating system without installing anything. When you send a document to a non-technical client, manager, recruiter, or colleague, PDF is the only format where you can be confident it will look right.

Layout and pagination control. Markdown has no concept of pages. A PDF converts your headings and sections into physical pages with consistent margins, typography, and pagination. Headers and footers can be added. Page breaks can be controlled with --- rules or CSS. This matters for documents that will be printed or read as multi-page documents.

Uneditable distribution. Sharing a Markdown file means sharing the source that can be trivially modified. Sharing a PDF creates a read-only snapshot. For proposals, quotations, reports, and official documents, PDF provides a degree of tamper-evidence that .md files cannot.

Acceptance by systems. Email clients, HR portals, journal submission systems, grant platforms, and document management systems accept PDF. Most reject .md files as an unknown file type or display them as raw text. For any formal submission, PDF is required.

Markdown to PDF: How Browser-Based Conversion Works

Converting Markdown to PDF in a browser follows a two-step pipeline. First, the Markdown is parsed by a JavaScript library (this tool uses marked.js, the most widely adopted Markdown parser in the JavaScript ecosystem) and converted to HTML. Second, that HTML is styled with a CSS stylesheet (your chosen theme) and sent to the browser’s print engine via window.print(), which generates a PDF.

This approach has important advantages over server-side conversion. Privacy is absolute: your content never leaves your device. Speed is immediate: there is no network round trip. Reliability is high: the browser’s print engine is the same one used to print any web page. The limitation is that the PDF output quality depends on the browser’s print engine. Chrome and Edge use Chromium’s PDF renderer, which produces excellent output with accurate typography and colour. Firefox uses its own renderer, which is also good but may have minor differences in table layout. Safari on macOS and iOS uses WebKit’s print engine, which closely matches the on-screen rendering.

For more advanced PDF generation with features like custom headers/footers, page numbers, exact pagination control, and PDF bookmarks, command-line tools like Pandoc (which uses a LaTeX engine for PDF output) provide more control at the cost of significant setup complexity. For the vast majority of document sharing use cases — READMEs, reports, documentation, notes, CVs — browser-based conversion provides excellent results instantly.

Why Does Your Markdown PDF Look Different From GitHub?

GitHub applies its own proprietary CSS when rendering Markdown. It uses specific font stacks (the system UI font on macOS and Windows), exact spacing values, a particular blue for links, grey borders on tables, and a light background for code blocks. When you convert Markdown to PDF using a different tool, the output looks different because it applies a different stylesheet.

This tool’s GitHub theme is specifically tuned to match GitHub’s rendering as closely as possible, including the same heading font sizes, border colours, code block styling, and blockquote indentation. If your Markdown is optimised for GitHub rendering, the GitHub theme will give you the most faithful PDF representation. For documents not tied to GitHub’s aesthetic, the Minimal theme provides the cleanest, most print-neutral output.

Common Markdown to PDF Problems and How to Fix Them

Tables are too wide and overflow the page. Markdown tables have no mechanism for controlling column width. If your table has many columns, reduce the content in each cell, switch to A3 page size for more width, or split the table into two smaller tables. The Minimal theme renders tables more compactly than the GitHub theme.

Code blocks have no syntax highlighting. Always specify the language identifier after the opening fence: ```python, not just ```. Without the language identifier, highlight.js cannot apply language-specific highlighting and falls back to plain monospace text.

Images are not loading. Online images referenced with absolute URLs (![alt](https://example.com/image.png)) load correctly. Local image references (![alt](./images/diagram.png)) cannot load in a browser tool because the browser has no access to your local file system via relative paths. Upload images to a hosting service or use absolute URLs for images you want to appear in the PDF.

The PDF output looks different on different browsers. Each browser has a slightly different print engine. For the most consistent output, use Chrome or Edge. If you need the exact same output every time from any browser, consider using Pandoc with a LaTeX engine for command-line conversion, which is entirely independent of the browser.

Pandoc Markdown to PDF: The Developer Alternative

For developers who need more control than a browser tool provides, Pandoc is the gold standard. Pandoc is a command-line document converter that supports Markdown, HTML, LaTeX, DOCX, EPUB, and dozens of other formats. Its PDF output uses a LaTeX typesetting engine (pdflatex or xelatex), producing publication-quality typography with precise control over everything from font metrics to hyphenation.

The basic command is: pandoc document.md -o document.pdf. For custom styling: pandoc document.md -o document.pdf --css=styles.css --pdf-engine=wkhtmltopdf. For LaTeX-quality output: install a LaTeX distribution (TeX Live or MiKTeX), then run pandoc document.md -o document.pdf. Pandoc requires installing the tool itself (available via Homebrew on Mac, apt on Linux, or the Windows installer), and LaTeX output requires also installing a LaTeX distribution, which can be several gigabytes. For occasional one-off conversions, a browser tool is much faster to use.

Markdown vs Word vs Google Docs: When to Use Each for PDF Export

All three can produce PDFs, but they suit different workflows. Markdown is best when the document starts as plain text, lives in a repository, needs version control, or was generated by an AI tool. Convert to PDF at the distribution point. Microsoft Word is best for documents that require tracked changes, comments, complex page layouts, or must be edited by non-technical stakeholders. Export to PDF from File → Export. Google Docs is best for real-time collaboration with multiple editors. Export to PDF from File → Download → PDF Document. Markdown-to-PDF via a browser tool is uniquely best when you need immediate conversion, complete privacy, and zero setup time.

❓ Frequently Asked Questions

Markdown to PDF — every question answered

From “what is a .md file” to advanced formatting — here are the questions people actually search for.

Paste or type your Markdown in the editor on the left, choose your theme and page size in the toolbar, then click Download PDF. Everything runs in your browser — no file is uploaded to any server. No signup, no account, no watermarks. It is completely free.

A Markdown file (.md or .markdown) is a plain text file written using Markdown syntax — a lightweight formatting language created by John Gruber in 2004. It uses simple symbols to indicate formatting: # for headings, **text** for bold, *text* for italic, - for lists, and backticks for code. The file is readable as plain text in any editor and can be rendered to HTML or PDF. Markdown is used for GitHub READMEs, technical documentation, blog posts, and note-taking in tools like Obsidian, Notion, and VS Code.

PDF (Portable Document Format) was created by Adobe in 1993. It is a fixed-layout document format that looks identical on every device, operating system, printer, and screen — regardless of which fonts are installed or which software is used to view it. PDF embeds everything the document needs (fonts, images, colours) into the file itself. It is the universal format for sharing documents that must look consistent: contracts, CVs, invoices, reports, academic papers, and any document that will be printed. PDF is now an open ISO standard (ISO 32000).

Opening a .md file without a Markdown viewer shows raw text with symbols like **bold** and # Heading instead of formatted output. Not everyone has a Markdown-aware viewer. PDF opens correctly in every browser, on every phone, on every OS without installing anything. PDF also locks layout, preventing edits, which is important for proposals, quotations, and official documents. Email clients, HR systems, journal submission portals, and most document management platforms accept PDF but reject .md files.

GitHub Flavored Markdown (GFM) extends standard Markdown with: tables using pipe syntax, task lists with - [ ] and - [x], strikethrough with ~~text~~, fenced code blocks with language identifiers (```python), and automatic URL linking. GFM originated at GitHub for README files but is now the dominant Markdown dialect used by GitLab, VS Code, Obsidian, Notion, Joplin, Bear, and most modern Markdown editors. This tool fully supports the GFM specification.

Open your README.md in any text editor, select all (Ctrl+A or Cmd+A), copy, and paste into the editor on this page. Alternatively, click Open .md File and select your README directly. The preview shows how it will render as a PDF. Select the GitHub theme for output that closely matches GitHub.com’s rendering. Click Download PDF. All GFM features including tables, code blocks, and task lists are supported.

Completely private. All Markdown parsing, preview rendering, and PDF generation happen inside your browser using marked.js and highlight.js. No content is sent to any server. Tools like PDF24 and pdfforge upload your file to their servers — this tool does not. It is safe for internal documentation, client proposals, confidential notes, and any sensitive writing. Close the browser tab and everything is gone.

Yes. Use fenced code blocks with a language identifier: ```javascript, ```python, ```bash, etc. The tool uses highlight.js which supports 180+ programming languages including JavaScript, TypeScript, Python, Java, Go, Rust, C/C++, C#, PHP, Ruby, Swift, Kotlin, HTML, CSS, SQL, Bash, YAML, JSON, Dockerfile, and many more. Without a language identifier (``` alone), code renders as plain monospace text without colour.

Four page sizes: A4 (210×297mm, international standard), US Letter (8.5×11in, North American standard), Legal (8.5×14in, used for legal documents and contracts), and A3 (297×420mm, suitable for wide tables or landscape presentations). All in portrait orientation. The A4 default works for most international documents; use Letter if your primary audience is in the US or Canada.

GitHub applies its own proprietary CSS stylesheet when rendering Markdown, including specific fonts, spacing, link colours, and code block styling. Any converter applying a different stylesheet will look different. This tool’s GitHub theme is specifically matched to GitHub’s rendering: same heading hierarchy, same border colours for tables, same grey code block background, same blockquote styling. Switch to the GitHub theme for the closest match to GitHub.com’s output.

ChatGPT, Claude, and Gemini all output Markdown by default. Their responses use headings (#), bold (**), bullet lists, and code blocks. To convert to PDF: select and copy the response text (the raw Markdown, not the rendered version), paste it into the editor here, and click Download PDF. The preview shows the formatted output. This works perfectly for converting AI-generated reports, plans, code explanations, and structured documents into shareable PDFs.

Markdown tables have no mechanism for controlling column width. If your table overflows: (1) switch to A3 page size for more horizontal space; (2) switch to Minimal theme which renders tables more compactly; (3) reduce cell content — abbreviate long strings, remove optional columns; (4) split the table into two separate tables covering fewer columns. For extremely wide tables, consider converting to a list format where each row is a heading with sub-items.

This tool converts one document at a time. For a multi-file workaround, paste all content into the editor separated by --- horizontal rules, with # Chapter Title headings marking each section, and export as one combined PDF. For true batch conversion of many .md files, use the command line: pandoc *.md -o combined.pdf (requires Pandoc installed) or a script that loops through files.

This tool works on all platforms with a modern browser. Mac: Chrome, Safari, or Firefox. Windows: Edge or Chrome. iPhone/iPad: Safari (tap Share → Print → then pinch-out on the preview to save as PDF, or just tap Download PDF). Android: Chrome (Download PDF triggers the system print dialog — choose Save as PDF). No installation, no app required on any platform. The split-pane editor works best on screens 900px+ wide; on mobile, the editor and preview stack vertically.

Markdown is a source format: plain text with formatting symbols, editable in any text editor, version-control-friendly, reflowable, and platform-independent. PDF is a presentation format: fixed-layout, embeds all fonts and images, looks identical everywhere, cannot be easily edited, and is universally accepted for sharing, printing, and archiving. Markdown is for writing; PDF is for distributing. Convert Markdown to PDF at the point where the document leaves your writing environment and goes to a reader who needs a stable, printable document.

Browser-based PDF generation (using window.print()) automatically adds page numbers if your browser’s print settings include headers and footers. In Chrome, when the print dialog opens, ensure “Headers and footers” is checked in the More settings panel. Firefox and Safari have similar options. For precise control over page number position, font, and format, command-line tools like Pandoc with the --pdf-engine flag give full CSS @page control.

Yes. Pandoc is a command-line tool and the gold standard for advanced Markdown-to-PDF conversion. It uses a LaTeX engine for publication-quality typography. Basic command: pandoc document.md -o document.pdf. Requires installing Pandoc and a LaTeX distribution (several GB). Great for batch processing, custom templates, and professional typesetting. For quick one-off conversions, a browser tool like this is far faster to use. For 100+ file batch conversion or academic publishing, Pandoc is worth the setup.

Obsidian stores notes as .md files. To convert to PDF using this tool: click Open .md File and navigate to your Obsidian vault folder, select the note file, and it loads into the editor. Alternatively, open the note in Obsidian, copy all (Ctrl+A, Ctrl+C), and paste here. Note that Obsidian-specific features like [[wikilinks]], ![[embeds]], Dataview queries, and custom plugins will not render in standard Markdown — only standard GFM syntax converts. Obsidian also has a built-in Export to PDF option under File menu if you prefer to keep everything within the app.

Manually create a table of contents by writing a list at the top of your document that links to heading IDs. Heading IDs are auto-generated from the heading text (lowercase, spaces become hyphens). Example: - [Introduction](#introduction), - [Setup](#setup). These become clickable anchor links in the PDF. For automatic table of contents generation, use Pandoc with the --toc flag: pandoc document.md --toc -o document.pdf.