Markdown を PDF に変換する 5 つの方法を比較(Pandoc、VSCode、オンラインツール)
ほとんどの人にとって、ブラウザ版の /markdown-to-pdf が正解 — 5 秒、インストール不要、コードハイライト、KaTeX、Mermaid を含む完全な Markdown 仕様。本や論文を出すのでなければ Pandoc は過剰です。他の 3 つは存在意義はありますが、ネットで言われるほど万能ではありません。
5 つすべてを 30 ページの Markdown レポート(コードブロック、KaTeX、テーブル、Mermaid 図表入り)で比較しました。各方法の実態、存在理由、本当に強い場面を以下に示します。
適している: 単発変換、コードハイライト、数式、図表、インストール不要。
やり方: /markdown-to-pdf を開き、貼り付けて PDF をクリック。
最初の PDF までの時間: 約 5 秒。
長所: ゼロインストール、どのブラウザでも動く。KaTeX と Mermaid を含む完全な Markdown サポート。ライト・ダーク両テーマで出力可能。無料アカウントでも透かしなし。
短所: 1 MB 入力上限。1 度に 1 ファイル — バッチは 複数の Markdown ファイルを PDF にバッチ変換 参照。
いつ使う: 単発変換の 95% はこれで足りる。
適している: 学術論文、独自 LaTeX テンプレート、引用と参考文献、1 ソースから複数フォーマット(PDF + DOCX + EPUB)。
やり方:
brew install pandoc
brew install --cask basictex # または mactex(約 5 GB)
pandoc input.md -o output.pdf
最初の PDF までの時間: 初回 30〜90 分(Pandoc + LaTeX をインストールし、テンプレートのエラーを潰す)。以降 5 秒。
長所: 安定、スクリプタブル、LaTeX による無限のテンプレート。引用ネイティブ対応 (--bibliography)。オフライン動作。書籍品質の組版。
短所: LaTeX のインストールサイズ 3〜5 GB。デフォルト出力は学術論文の見た目。カスタムテンプレは難しい。コードハイライトは --highlight-style 別途、Web 標準で見ると古い。Mermaid はフィルタープラグインが必要。
いつ使う: 本、博士論文、文献付き論文を出版する、または 3 つ以上の PDF テンプレートをバージョン管理したい場合。
適している: VSCode で 1 日中 Markdown を書く人。
やり方: yzane の「Markdown PDF」プラグインをインストール、ファイル右クリック → Markdown PDF: Export (pdf)。
最初の PDF までの時間: 初回約 10 秒(プラグインがサイレントに Chromium をダウンロード、約 150 MB)。
長所: 既に書いている場所からワンクリック。ユーザー設定で CSS をカスタマイズ可能。デフォルトのスタイルも実用的。
短所: 初回エクスポートが Chromium ダウンロードで遅い。PDF の見た目は CSS 経由のみ。KaTeX は箱から出してすぐは動かない — 別途 Markdown+Math プラグインが必要。Mermaid ブロックはコードのままで図にならない。
いつ使う: 週 5 本以上の PDF を書き、エディタが VSCode の場合。
適している: Markdown が既にブラウザで描画されているページ(GitHub README、GitLab Wiki、ドキュメントサイト)。
やり方: ⌘+P または Ctrl+P → 「PDF として保存」。
最初の PDF までの時間: 約 3 秒。
長所: そこにある。インストール不要。レンダリングされた HTML なら何でも。
短所: 改ページが予測不能にテーブルとコードブロックを切る。Firefox の印刷でハイライト色が抜けることが多い。デフォルトのヘッダー/フッターは URL とページ番号で、通常は手動で無効化する必要がある。元ページが KaTeX や Mermaid を描画していない限り PDF にも入らない。
いつ使う: 既にレンダリング済みの Markdown ページの PDF が今すぐ必要で、粗さは許容できる場合。
適している: ビルドパイプライン、CI/CD、自動化されたドキュメント。
やり方:
npm install -g md-to-pdf
md-to-pdf input.md
最初の PDF までの時間: 約 10 秒(初回に Puppeteer の Chromium、約 120 MB を取得)。
長所: スクリプタブル。ドキュメントごとに YAML front-matter でテーマ指定。watch モード。インストール後はオフラインで動く。
短所: Node + Chromium 依存。テーマ調整は YAML + CSS のみで Pandoc/LaTeX ほど表現力がない。Mermaid は箱から出して動かない — markdown-it プラグインが必要。
いつ使う: ドキュメントサイトが CI で PDF をビルドする;PDF を .md と並べてバージョン管理したい。
注意:古い markdown-pdf(ハイフンなし)パッケージは避ける — 2019 年以降未更新でセキュリティ警告あり。md-to-pdf がメンテされている後継です。
| 方法 | インストール | 初回 PDF | ハイライト | 数式 | Mermaid | 適している |
|---|---|---|---|---|---|---|
/markdown-to-pdf | 0 MB | 5 秒 | あり | あり (KaTeX) | あり | 単発 |
| Pandoc | 3〜5 GB | 30〜90 分 | 基本 | あり (LaTeX) | フィルター | 本・論文 |
| VSCode プラグイン | 150 MB | 10 秒 | あり | 拡張必要 | なし | VSCode 利用者 |
| ブラウザ印刷 | 0 MB | 3 秒 | 不安定 | なし | なし | 既に描画済み |
md-to-pdf CLI | 120 MB | 10 秒 | あり | 設定必要 | プラグイン | CI/CD |
- 大半の読者 →
/markdown-to-pdf。約 95% のケースの答え。 - 引用付き学術 → Pandoc。
- VSCode 常用 → VSCode プラグイン。
- DocOps / CI ビルド →
md-to-pdfCLI。 - GitHub README が今すぐ要る → ブラウザ印刷、粗さは諦める。
Markdown → PDF ツールの誘惑はオーバーエンジニアリング。1 文書ならインストールしない。1000 文書なら CLI で自動化。Pandoc を非学術用途に正当化する中間域はほとんどありません。
コードハイライトを最もよく保つのは?
headless Chromium 系(/markdown-to-pdf、VSCode プラグイン、md-to-pdf CLI)。実際の Chromium でレンダリングするので、highlight.js / Prism のテーマがそのまま入ります。Pandoc の --highlight-style は Web 標準で見ると古いです。詳しくは コードハイライトを保持した Markdown PDF 変換。
バッチ変換できるのは?
CLI が自然に対応 (md-to-pdf chapter*.md)。Web ツールの場合は 複数の Markdown ファイルを PDF にバッチ変換 を参照。
なぜ markdown-pdf ではなく md-to-pdf なのか?
markdown-pdf(ハイフンなし)は 2019 年以降未更新でセキュリティ警告あり。md-to-pdf はメンテされている後継です。
Markdown to PDF API はありますか?
あります — Markdown to Image API に PDF 出力モードがあり、プログラム的に生成できます。
CJK / 中国語フォントの扱いが最も良いのは?
/markdown-to-pdf と md-to-pdf はホストブラウザのフォントスタックを使うので、システムに CJK フォントがあれば動きます。Pandoc + XeLaTeX は mainfont: 明示が必要。VSCode プラグインは CJK を箱から出してすぐ扱えます。
スケール時に最も安いのは?
週 100+ PDF なら CI 上の md-to-pdf は実質無料(計算コストのみ)。たまの利用ならブラウザ版が無料。Pandoc 自体は無料ですがテンプレート保守が隠れコスト。
勝者は量で決まります。1 PDF → ブラウザツール。1000 PDF → CI の CLI。引用付きの本 → Pandoc。軽量版の痛みを感じてから重い武器を取り出すべきです。