Markdown → PDF 変換について
Markdown は書きやすい形式ですが、開発者ではない読み手にとっては、「#」や「*」だらけのファイルより、きちんとした文書のほうがありがたいものです。このツールは、MIT ライセンスのオープンソースライブラリ marked を使って Markdown を解析します。基準は CommonMark の仕様で、それに GitHub の 2 つの拡張、表と取り消し線を加えています。解析した文書は、読みやすい 1 種類のスタイルで A4 またはレターのページに組まれます。
整形して出力される要素
- 見出し、段落、太字、斜体、取り消し線
- インラインコードと、背景に網かけをして等幅フォントで組むフェンス付きコードブロック
- 箇条書き、番号付きリスト、入れ子のリスト
- 引用ブロックと水平線
- シンプルな罫線で描く表
- PDF でもクリックできるリンク
見た目は固定で、テーマの選択も独自の CSS の適用もできません。設定できるのは用紙サイズと基本の文字サイズの 2 つだけです。そのぶん手早く使え、出力も一定の仕上がりになります。デザインに凝ったパンフレットより、配布資料、ドキュメント、レポートに向いています。
Markdown → PDF 変換の使い方
- .md ファイルを開くMarkdown ファイルを選ぶか、ツールにドラッグします。標準的な Markdown の記法を使っていれば、メモアプリ、Wiki、コードリポジトリから書き出したファイルも使えます。
- 用紙と基本の文字サイズを設定するA4 かレターを選び、本文の基本の文字サイズを決めます。文字サイズを小さくすると、幅の広い表や長いコードの行がページに収まりやすくなります。
- PDF を作成してダウンロードする「PDF を作成」を押して保存します。人に送る前に一度開き、見出し、表、画像の代替表示を確認しておきましょう。
主な利用シーン
リポジトリの外にいる人に README を渡す
Markdown で書いたプロジェクトのセットアップ手順を、どこでも開ける PDF にしてクライアントや上司に渡せます。インストール手順は番号付きリストに、コマンドは網かけのコードブロックになります。
会議メモを配布資料にする
トピックごとに見出しを立て、決定事項を箇条書きにし、担当者と期日を小さな表にまとめた Markdown のメモを、次の会議で配れる印刷用のページにできます。
テキストエディターで書いたレポート課題
授業の提出システムは PDF しか受け付けないのに、レポートを Markdown で書いているとします。そんなときは完成したファイルを変換すれば、見出し、引用、出典のリンクの書式を保ったまま提出できます。
画像が代替表示になる理由
Markdown では、画像をパスやウェブアドレスで参照します。たとえば  のような書き方です。このページはサイトの外からファイルを読み込まないため、参照された画像は取得されません。代わりに PDF には、角かっこの中の説明文を使った [image: 代替テキスト] という代替表示が入り、そこに画像があったことが読み手にわかるようになっています。つまり Markdown に意味のある代替テキストを書いておくと役に立ちます。
画像が重要な場合は、JPG → PDF 変換や PNG → PDF 変換で画像の PDF を作り、PDF 結合で本文の PDF と 1 つにまとめてください。
言語と使われるフォント
英語などラテン文字で書く言語には、どの PDF リーダーにも最初から入っている標準フォントの Helvetica と Courier を使うため、フォントの埋め込みは不要です。ギリシャ文字とキリル文字は Roboto、中国語と日本語は Droid Sans Fallback で組みます。どちらも Apache-2.0 ライセンスのフォントで、文書で使われている文字だけを含むサブセットとして埋め込まれます。日本語などに使うフォントは約 4 MB のダウンロードになりますが、ブラウザが取得するのは Markdown にそうした文字が実際に含まれているときだけです。
韓国語のハングルはどちらのフォントにも含まれていないため、疑問符(?)で表示されます。アラビア語、ヘブライ語など右から左に書く文字や、ヒンディー語、タイ語のような複雑な文字体系は、正しくレイアウトされません。それらの言語の文書は、対応しているワープロソフトやブラウザから PDF にするほうが確実です。
出力の品質とサイズ
PDF 内の文字はすべてベクターのテキストです。どれだけ拡大してもシャープで、検索もコピーもできます。画像を埋め込まず、フォントもサブセット化するので、一般的な Markdown 文書なら、メールで送りやすい軽いファイルになります。リンクは対応しているビューアーでそのまま機能します。印刷用にページ番号が必要なら、できた PDF を PDF ページ番号追加にかけてください。
反映されない記法
- 画像。前述のとおり代替表示になります。
- 独自のスタイル。カスタム CSS、テーマ、色、フォントの指定は使えません。
- CommonMark 以外の拡張。GitHub の表と取り消し線は例外です。脚注、数式、コードとして書いた図はこの対象に含まれないため、整形された結果ではなく元の記述がそのまま表示されます。
- プレーンテキストのファイル。ファイルが実際には Markdown でない場合は、TXT → PDF 変換を使えば、すべての行とスペースが入力したとおりに残ります。
解析もページのレイアウトも、このブラウザのタブの中で行われます。Markdown もできあがった PDF も端末の中にとどまります。確認する方法はこちらです。