MarkdownをPDFにする方法を、ブラウザ印刷とPandocの2通りで比較します。単発ならブラウザ、繰り返し生成や自動化ならPandocという判断基準と、外部送信を避けるときの注意点を整理します。
MarkdownをPDFにするだけなら、必ずしも専用の変換サービスは必要ありません。一度だけ保存するなら、Markdownをブラウザで整形表示して「印刷 → PDFに保存」する方法が最短です。 同じ設定で繰り返し生成したい場合や、自動処理へ組み込みたい場合はPandocの方が向いています。
この記事では、MarkdownをPDF化する2つの方法を、「手軽さ」「再現性」「ファイルをどこで処理するか」の3点から整理します。
結論:単発ならブラウザ、繰り返すならPandoc
先に選び方だけまとめると、次のようになります。
| やりたいこと | 向いている方法 | 理由 |
|---|---|---|
| 完成済みのMarkdownを1回だけPDFにしたい | Markdown Viewer+ブラウザ印刷 | インストール不要で、開いてすぐ保存できる |
| AIの下書きを修正してからPDFにしたい | Yomu+ブラウザ印刷 | 編集・プレビュー・PDF保存を同じ画面で続けられる |
| READMEやメモをその場でPDFにしたい | Markdown Viewer+ブラウザ印刷 | 閲覧中心で操作が少ない |
| 毎回ほぼ同じ見た目で出したい | Pandoc | 設定をコマンドやテンプレートとして残せる |
| 複数ファイルをまとめて処理したい | Pandoc | スクリプトやCIへ組み込みやすい |
| 外部の変換サーバーへ本文を送りたくない | ローカル処理できる方法 | 「オンラインかどうか」より処理場所が重要 |
oka-projectでは、ブラウザ印刷までの入口を用途別に2つ用意しています。
Markdown Viewerは、完成済みの.mdファイルやMarkdownテキストを開き、表示を確認してPDFにするための道具です。
Yomuは、ChatGPTやClaudeで作った原稿などを左側で修正し、プレビューを見ながら整えてからPDFにするためのエディタです。
どちらもPDF専用の変換APIへ本文を送る方式ではなく、ブラウザ内で表示した内容をブラウザの印刷機能からPDFとして保存します。完成済みならViewer、保存前に書き直すならYomu、と使い分けてください。
方法1:ブラウザで表示してPDFに保存する
一番簡単なのは、Markdownをブラウザ上でレンダリングしてから、そのページをPDFとして保存する方法です。
Chromeでは、PCで Ctrl + P、Macで ⌘ + P を押すと印刷画面を開けます。そこでPDF保存を選べば、表示中の内容をPDFとして保存できます。
完成済みのMarkdownならViewerを使う
Markdown Viewerを使う場合は、次の流れです。
- Markdown Viewerを開く
- .mdファイルを選ぶ、またはMarkdownテキストを貼り付ける
- 見出し・表・コードなどのプレビューを確認する
Ctrl + Pまたは⌘ + Pで印刷画面を開く- PDF保存を選び、向き・余白・倍率などを確認して保存する
保存前に原稿を直すならYomuを使う
Yomuを使う場合は、次の流れです。
- Yomuを開く
- ChatGPT・Claudeの回答を貼り付けるか、.md / .txtファイルを開く
- 左側で文章を修正し、右側のプレビューで見え方を確認する
- 「エクスポート」から「PDF / 印刷」を選ぶ
- 印刷画面でPDF保存を選ぶ
Yomuでは見出し・表・コードのほか、目次、文字数、推定読了時間も確認できます。一方、画像の自動埋め込みや複数原稿の管理は行わないため、必要な画像は保存前後に別途調整してください。
どちらを使う場合も、PDF化する前に一度プレビューを確認することが重要です。Markdownの書き方が正しくても、表の幅や長いコード行は紙面サイズに収まらないことがあります。
Markdownをブラウザで確認する方法自体は、Markdownをブラウザだけでプレビューする方法で詳しく整理しています。
「ブラウザで使う」と「サーバーへ送る」は同じではない
PDF変換ツールを選ぶときに混同しやすいのが、Webページ上で動くことと、ファイルをサーバーへアップロードすることです。
Webツールには、ファイルをサーバーへ送って変換するものもあれば、JavaScriptやWebAssemblyを使って端末側で処理するものもあります。ブラウザのFile APIを使えば、利用者が選んだローカルファイルをブラウザ内で読み取ることもできます。
ただし、ブラウザ内で読み込んでいるだけでは「外部送信しない」とは断定できません。 読み込んだ内容をJavaScriptから別のAPIへ送る実装も可能だからです。
そのため、公開前の原稿や業務文書を扱う場合は、少なくとも次の点を確認した方が安全です。
- 本文やファイルを変換サーバーへ送信するか
- 保存期間があるか
- 外部APIや外部リソースへ通信するか
- 通信先をContent Security Policy(CSP)などで制限しているか
oka-projectのMarkdown ViewerとYomuでは、入力内容をブラウザ内で処理し、CSPで不要な外向き通信を制限する方針を採っています。実装上どこまで制限できるのかは、ブラウザ完結ツールの「送信しない」を、約束ではなく構造にするで説明しています。
方法2:PandocでMarkdownからPDFを生成する
毎回同じ条件でPDFを作りたいなら、ブラウザ印刷よりPandocが向いています。
PandocはMarkdownを含む多数の文書形式を変換できるコマンドラインツールです。基本形は次のとおりです。
pandoc input.md -o output.pdf
Pandocの公式ドキュメントでは、PDFを出力すると既定ではLaTeXを利用し、そのためLaTeXエンジンの導入が必要になると説明されています。必要に応じて --pdf-engine で別のPDFエンジンを指定できます。
たとえばXeLaTeXを使う場合は次の形です。
pandoc input.md --pdf-engine=xelatex -o output.pdf
Pandocを使う利点は、「PDFを作れる」ことよりも、生成条件を再利用できることにあります。余白、フォント、目次、テンプレートなどを一定にしやすく、同じ処理をスクリプトから繰り返せます。
一方で、最初にPandoc本体やPDFエンジンを用意する必要があります。1ファイルを一度だけPDFにしたいだけなら、ブラウザ方式の方が作業量は少なくなります。
PDF化で崩れやすい4つのポイント
表がページ幅を超える
列数が多いMarkdown表は、画面では読めてもA4縦では収まらないことがあります。PDF保存前に印刷プレビューで確認し、必要なら横向きや倍率を調整します。
表そのものが崩れている場合は、PDF化より前にMarkdownの記法を直す必要があります。
Markdownの表が崩れる・表示されない原因では、記法とレンダラーの差を切り分けています。
長いコード行が切れる
コードブロック内に改行されない長い文字列があると、右端が切れたり、全体が縮小されたりします。URL、JSON、ログ、長いコマンドを含む文書では特に確認が必要です。
見出し直後で改ページされる
画面では自然でも、PDFでは見出しだけがページ下部に残る場合があります。長文では保存後のPDFを最後まで一度確認した方が確実です。
外部画像は別の通信を発生させることがある
Markdown本文を端末内で処理していても、外部URLの画像を表示するために通信が発生する場合があります。「本文をサーバーへ送っていない」と「ページが一切外部通信しない」は別の話です。
機密性を優先する場合は、画像も含めてローカルで扱える構成か、外部リソースの取得が制限されているかまで確認します。
どの方法を使うか迷ったときの判断基準
まず、PDFにする前に原稿を編集するかどうかで分けます。
- 完成済みのMarkdownを一度確認してPDFにするなら、Markdown Viewer
- AIの下書きや文章を修正してからPDFにするなら、Yomu
- 同じ条件で繰り返しPDFを生成するなら、Pandoc
ViewerとYomuは、どちらも最後はブラウザ印刷を利用します。違いはPDFの作り方ではなく、保存前に必要な作業です。見るだけならViewer、書き直すならYomuを選びます。
Pandocは、同じ原稿から継続的にPDFを作る人向けです。生成条件をコードや設定として残せるため、自動化や再現性を重視する場面に適しています。
また、外部送信を避けたい場合は「オンラインツールか、デスクトップアプリか」だけで判断せず、実際の処理場所と通信先を見ることが重要です。
まとめ
完成済みのMarkdownを一度だけPDFにしたいなら、Markdown Viewerで開き、ブラウザの印刷機能から保存する方法が最短です。
ChatGPTやClaudeで作った原稿を修正してからPDFにしたい場合は、Yomuで編集とプレビューを行い、そのまま印刷画面へ進めます。
一方、同じ形式のPDFを繰り返し生成したい、複数ファイルをまとめたい、CIやスクリプトへ組み込みたい場合はPandocの方が向いています。