# MarkdownをPDFにする方法 — ファイルをどこにも送信せずに

- 正規URL: https://oka-project.com/blog/markdown-to-pdf-without-upload
- 公開: 2026-08-30 ／ 更新: 2026-09-11
- 著者: oka（https://oka-project.com/about）

---
MarkdownをPDFにするだけなら、必ずしも専用の変換サービスは必要ありません。**一度だけ保存するなら、Markdownをブラウザで整形表示して「印刷 → PDFに保存」する方法が最短です。** 同じ設定で繰り返し生成したい場合や、自動処理へ組み込みたい場合はPandocの方が向いています。

この記事では、MarkdownをPDF化する2つの方法を、「手軽さ」「再現性」「ファイルをどこで処理するか」の3点から整理します。

> [!NOTE]
> ここで説明するブラウザ方式は、PC版ブラウザの印刷機能を使う方法です。表示名や保存画面はOS・ブラウザによって少し異なります。Pandocについては公式User’s GuideのPDF生成仕様を前提にしています。

## 結論：単発ならブラウザ、繰り返すならPandoc

先に選び方だけまとめると、次のようになります。

| やりたいこと | 向いている方法 | 理由 |
|---|---|---|
| 完成済みのMarkdownを1回だけPDFにしたい | Markdown Viewer＋ブラウザ印刷 | インストール不要で、開いてすぐ保存できる |
| AIの下書きを修正してからPDFにしたい | Yomu＋ブラウザ印刷 | 編集・プレビュー・PDF保存を同じ画面で続けられる |
| READMEやメモをその場でPDFにしたい | Markdown Viewer＋ブラウザ印刷 | 閲覧中心で操作が少ない |
| 毎回ほぼ同じ見た目で出したい | Pandoc | 設定をコマンドやテンプレートとして残せる |
| 複数ファイルをまとめて処理したい | Pandoc | スクリプトやCIへ組み込みやすい |
| 外部の変換サーバーへ本文を送りたくない | ローカル処理できる方法 | 「オンラインかどうか」より処理場所が重要 |

oka-projectでは、ブラウザ印刷までの入口を用途別に2つ用意しています。

[Markdown Viewer](https://oka-project.com/tools/markdown-viewer)は、完成済みの.mdファイルやMarkdownテキストを開き、表示を確認してPDFにするための道具です。

[Yomu](https://oka-project.com/tools/markdown-editor)は、ChatGPTやClaudeで作った原稿などを左側で修正し、プレビューを見ながら整えてからPDFにするためのエディタです。

どちらもPDF専用の変換APIへ本文を送る方式ではなく、ブラウザ内で表示した内容をブラウザの印刷機能からPDFとして保存します。完成済みならViewer、保存前に書き直すならYomu、と使い分けてください。

## 方法1：ブラウザで表示してPDFに保存する

一番簡単なのは、Markdownをブラウザ上でレンダリングしてから、そのページをPDFとして保存する方法です。

Chromeでは、PCで `Ctrl + P`、Macで `⌘ + P` を押すと印刷画面を開けます。そこでPDF保存を選べば、表示中の内容をPDFとして保存できます。

### 完成済みのMarkdownならViewerを使う

Markdown Viewerを使う場合は、次の流れです。

1. [Markdown Viewer](https://oka-project.com/tools/markdown-viewer)を開く
2. .mdファイルを選ぶ、またはMarkdownテキストを貼り付ける
3. 見出し・表・コードなどのプレビューを確認する
4. `Ctrl + P` または `⌘ + P` で印刷画面を開く
5. PDF保存を選び、向き・余白・倍率などを確認して保存する

### 保存前に原稿を直すならYomuを使う

Yomuを使う場合は、次の流れです。

1. [Yomu](https://oka-project.com/tools/markdown-editor)を開く
2. ChatGPT・Claudeの回答を貼り付けるか、.md / .txtファイルを開く
3. 左側で文章を修正し、右側のプレビューで見え方を確認する
4. 「エクスポート」から「PDF / 印刷」を選ぶ
5. 印刷画面でPDF保存を選ぶ

Yomuでは見出し・表・コードのほか、目次、文字数、推定読了時間も確認できます。一方、画像の自動埋め込みや複数原稿の管理は行わないため、必要な画像は保存前後に別途調整してください。

どちらを使う場合も、PDF化する前に一度プレビューを確認することが重要です。Markdownの書き方が正しくても、表の幅や長いコード行は紙面サイズに収まらないことがあります。

Markdownをブラウザで確認する方法自体は、[Markdownをブラウザだけでプレビューする方法](/blog/markdown-preview-online)で詳しく整理しています。

## 「ブラウザで使う」と「サーバーへ送る」は同じではない

PDF変換ツールを選ぶときに混同しやすいのが、Webページ上で動くことと、ファイルをサーバーへアップロードすることです。

Webツールには、ファイルをサーバーへ送って変換するものもあれば、JavaScriptやWebAssemblyを使って端末側で処理するものもあります。ブラウザのFile APIを使えば、利用者が選んだローカルファイルをブラウザ内で読み取ることもできます。

ただし、**ブラウザ内で読み込んでいるだけでは「外部送信しない」とは断定できません。** 読み込んだ内容をJavaScriptから別のAPIへ送る実装も可能だからです。

そのため、公開前の原稿や業務文書を扱う場合は、少なくとも次の点を確認した方が安全です。

- 本文やファイルを変換サーバーへ送信するか
- 保存期間があるか
- 外部APIや外部リソースへ通信するか
- 通信先をContent Security Policy（CSP）などで制限しているか

oka-projectのMarkdown ViewerとYomuでは、入力内容をブラウザ内で処理し、CSPで不要な外向き通信を制限する方針を採っています。実装上どこまで制限できるのかは、[ブラウザ完結ツールの「送信しない」を、約束ではなく構造にする](/blog/browser-only-tools-csp)で説明しています。

> [!WARNING]
> ローカル処理は「変換サービスへ本文を送らない」ための設計です。端末自体の安全性、悪意ある拡張機能、誤共有など、別のリスクまでなくなるわけではありません。

## 方法2：PandocでMarkdownからPDFを生成する

毎回同じ条件でPDFを作りたいなら、ブラウザ印刷よりPandocが向いています。

PandocはMarkdownを含む多数の文書形式を変換できるコマンドラインツールです。基本形は次のとおりです。

```bash:terminal
pandoc input.md -o output.pdf
```

Pandocの公式ドキュメントでは、PDFを出力すると既定ではLaTeXを利用し、そのためLaTeXエンジンの導入が必要になると説明されています。必要に応じて `--pdf-engine` で別のPDFエンジンを指定できます。

たとえばXeLaTeXを使う場合は次の形です。

```bash:terminal
pandoc input.md --pdf-engine=xelatex -o output.pdf
```

Pandocを使う利点は、「PDFを作れる」ことよりも、**生成条件を再利用できること**にあります。余白、フォント、目次、テンプレートなどを一定にしやすく、同じ処理をスクリプトから繰り返せます。

一方で、最初にPandoc本体やPDFエンジンを用意する必要があります。1ファイルを一度だけPDFにしたいだけなら、ブラウザ方式の方が作業量は少なくなります。

## PDF化で崩れやすい4つのポイント

### 表がページ幅を超える

列数が多いMarkdown表は、画面では読めてもA4縦では収まらないことがあります。PDF保存前に印刷プレビューで確認し、必要なら横向きや倍率を調整します。

表そのものが崩れている場合は、PDF化より前にMarkdownの記法を直す必要があります。

[Markdownの表が崩れる・表示されない原因](/blog/markdown-table-not-rendering)では、記法とレンダラーの差を切り分けています。

### 長いコード行が切れる

コードブロック内に改行されない長い文字列があると、右端が切れたり、全体が縮小されたりします。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の方が向いています。

- [完成済みのMarkdownをPDFにする: Markdown Viewer](https://oka-project.com/tools/markdown-viewer)
- [原稿を編集してからPDFにする: Yomu](https://oka-project.com/tools/markdown-editor)

### 参考

- [Google Chrome ヘルプ: Chromeから印刷](https://support.google.com/chrome/answer/1069693?hl=ja)
- [MDN: Window.print()](https://developer.mozilla.org/ja/docs/Web/API/Window/print)
- [MDN: FileReader.readAsText()](https://developer.mozilla.org/ja/docs/Web/API/FileReader/readAsText)
- [Pandoc User’s Guide](https://pandoc.org/MANUAL.html)