Markdown からきれいな PDF を作る
開発チームは Markdown に慣れています。レビューもしやすく、Git の履歴も綺麗に残る。しかし経営層や顧客、法務は今でも「正式な PDF」を求めます。毎回 Keynote や Word にコピペする代わりに、Markdown → 画像 → PDF という安定したパイプラインを用意しましょう。ソースはそのまま残り、ステークホルダーには読みやすく印刷しやすい成果物を渡せます。
- レイアウトの固定 – Markdown の表示はビューワー次第で崩れがち。PDF にすればどの端末でも同じ見た目になります。
- 監査対応 – タイムスタンプ付きの PDF を Directus に保存しておけば、誰がいつ共有したかすぐ遡れます。
- 部門間の認識合わせ – ビジネス部門はページ番号やキャプションを重視。ページ構成を整えた PDF は質問を減らします。
- 紙でのやりとり – 契約更新やレビューでは紙に印刷して書き込むケースも多いです。PDF ならそのまま共有できます。
- 文章を 400〜500 文字程度のブロックに分割し、1 ページ=1 ブロックの感覚で構成します。
##をページ見出し、###を段落見出しとして使い、文脈が飛ばないようにします。- 画像には必ず説明文を入れます。PDF を印刷した読者はリポジトリを確認できません。
- リンクは「SLA 付属資料を確認」のように意味を持たせます。「こちら」だけではオフラインで迷います。
- 横長の表は箇条書きに作り変えて、PDF での折り返しを防止します。
コードベースのエクスポータやエディタ機能も試しましたが、最終的に markdowntoimage.com に落ち着きました。
- ブロックごとに Markdown を貼り付け、Deck テンプレートまたはブランドカラーに合わせたテーマを選びます。
- Layout タブで本文幅(約 720px)、行間(1.4 付近)、段落の余白を設定します。
- フッターにスプリント名、日付、秘匿区分、
{{page}} / {{pages}}のページ番号を入れます。 - プレビューで溢れがないか確認。文字を縮めるより、ページを分割した方が読みやすさを保てます。
- PNG をダウンロードし、
01-overview.pngのように番号を付けて保存します。
- macOS – プレビューで PNG を全て開き、順番を並べて「PDF として書き出す」。
- Windows – ファイルを選択 → 右クリック「印刷」→「Microsoft Print to PDF」。
- Linux / CI – ImageMagick + Ghostscript をインストールし、
convert *.png report.pdf。自動配信にも使えます。 - モバイル – iOS の「ファイル」アプリでまとめて選択し「PDF を作成」。外出時の緊急対応に便利です。
- 完成した PDF と元の Markdown を同じフォルダにアップロードし、スプリント名や顧客名でタグを付けます。
postsコレクションに PDF のリンクやバージョン情報を記録し、Flow で関係者へ通知できます。- 多言語が必要な場合は
post_translationsを複製してテキストを差し替え、同じテンプレートで PNG を再出力します。
- 目次とページ番号が一致しているか。
- 画像の解像度が想定表示の 2 倍以上か。
- 数値は本文中にも記載されているか(グラフが壊れた場合に備える)。
- PDF を PC とスマホで開き、フォントの埋め込みを確認する。
- PDF プロパティに作者・キーワード・概要を入力する。
- エンジニアは従来通り Markdown で週次レポートをまとめ、Pull Request でレビュー。
- テクニカルライターが Markdown2Image で 6 ページのカードを 20 分程度で作成。
- オペレーションが PDF と Markdown を Directus に登録し、顧客名タグを付ける。
- 自動フローが営業、CS、顧客代表にメールで配信。閲覧リンクから Markdown の原稿にもアクセス可。
- 顧客は 2MB 程度の軽量 PDF を受け取り、印刷も簡単。 以前は PPT への貼り付けに 2 時間かかっていた作業が、30 分以内で終わりました。
- 手順を Notion や README にまとめ、スクリーンショット付きで残す。
- テンプレートを用途別(社内向け、顧客向け、投資家向け)に複数用意する。
- 小さなスクリプトでファイルサイズとページ数をチェックし、Directus 登録前にエラーを防ぐ。
- 四半期ごとにテンプレートを見直し、ブランドのアップデートや免責文を反映する。
ブランドチームと早めに合意しておくと、色やロゴサイズを毎回確認する手間が減ります。Deck テンプレートを複製し、投資家用・顧客用・社内用などプリセットを作成しておくと差し替えがワンクリックで済みます。
PDF には公開レベルや有効期限を明記しましょう。必要であればフッターに軽いウォーターマークを入れ、配布先が特定できるようにします。Directus 側では誰がダウンロードしたかログを残せます。
Markdown の冒頭に YAML frontmatter を置き、customer, sprint, owner, risk_level などを記録しておくと、Directus がそのまま読み込んでダッシュボード化できます。PDF は人向けの完成形、Markdown は機械可読なデータソースという役割分担です。
新メンバーには 30 分程度のワークショップを実施し、実際に Markdown から PDF までをライブで示します。録画をして社内 Wiki に残しておけば、担当者が休暇に入っても他メンバーが代行できます。FAQ には「PNG の背景が透過になる」「日本語フォントが置き換わる」などよくある質問を記載しておきましょう。
- CI で
convertコマンドを走らせ、ビルド成果物として PDF を添付。 - Directus の Webhook を利用し、
post_translationsの対象言語が 30 日以上更新されていない場合に Slack 通知。 - 画像ファイル名を
YYYYMMDD-slug-page.pngの形式に統一すると、履歴を辿りやすくなります。
- コメント欄の活用 – Directus のコメント機能で受領確認や補足質問を残すと、メールに埋もれません。
- 翻訳フロー – 中国語や英語など他言語版を用意する際は、原稿の段落構成を揃え、翻訳メモリに登録。画像テンプレートは共通なので、差し替えが楽です。
- リハーサル配信 – 重要な顧客へ送る前に社内レビュー用の PDF を出し、実際の印刷プリンタで確認しておくと安心です。
テンプレートやフローは放置すると陳腐化します。少なくとも年 2 回は棚卸しを行い、以下を確認してください。
- ブランドガイドラインに変更はないか。
- 新しい章(例: AI 利用状況や ESG 指標)を追加する必要はないか。
- 共有先のリストは最新か。
- Directus のアクセス権に過不足はないか。
- Markdown と PNG のフォルダを Git にコミット(必要に応じて LFS を使用)。
- PDF を Directus にアップロードし、URL をマーケティング資料や CRM に貼る。
- Flow でメールを送信し、「この PDF は Markdown のどのコミットから生成されたか」を本文に記載。
- 次回のためにフィードバックを Issue 化し、テンプレート改善につなげます。
Markdown の俊敏さと PDF の堅牢さを束ねるだけで、社内の信頼度が大きく変わります。Markdown2Image はシンプルですが、ラインハイトや余白を細かく調整できるため、ブランド表現を崩しません。Directus をハブに据えれば、言語別のバリエーションや権限管理、通知まで一気通貫で運用できます。少しの下準備で「PDF で送って」という要求が怖くなくなります。
- Q: PDF にしてから誤字を見つけたら? A: Markdown を修正し、PNG と PDF を再生成してください。Directus のバージョン履歴により以前のファイルも残せます。
- Q: モバイルだけで完結できる? A: 文章編集は難しいですが、緊急時なら iPad で Markdown を編集し、ブラウザから Markdown2Image を開いてエクスポート後、ショートカットで PDF 化することも可能です。
- Q: 画像が重い場合は? A: Export 時に PNG 品質を 80% 程度に落としつつ、スライド数を調整します。Directus では自動でサムネイルも生成されます。
- PDF 作成にかかる平均時間
- 週次や月次で生成された PDF 数
- 言語別の更新回数
- ダウンロードされた回数(Directus のアクティビティログで確認) これらをダッシュボード化すると、プロセス改善の説得材料になります。
| 役割 | 主な作業 |
|---|---|
| エンジニア | Markdown 草稿、レビュー、Git 管理 |
| テクニカルライター | テンプレート調整、PNG/PDF 生成、文体統一 |
| オペレーション | Directus への登録、タグ付け、通知フローの運用 |
| アカウント担当 | 顧客への送付、フィードバック収集 |
- 現在の Markdown ドキュメントを棚卸しし、どれが PDF 化に向いているかリスト化。
- Markdown2Image のテンプレートを 2 種類だけ用意し、まずは社内向けで試す。
- Directus 上に「PDF 配布」コレクションを作り、ファイルとメタ情報を整理。
- 成果を振り返り、必要なら CI 連携など自動化の幅を広げる。
このワークフローは派手ではありませんが、組織の信頼を底支えします。Markdown に慣れた文化はそのままに、PDF での提供品質を一段引き上げませんか?一度手順を固めてしまえば、誰が担当しても同じクオリティで出力できるようになります。
SaaS チーム A では、四半期ごとの顧客成功レポートにこの手法を導入しました。
- プロダクトマネージャーが GitHub Issue に Markdown の骨子を投稿。
- チームメンバーが各章を PR として追加し、レビュー時に KPI の根拠リンクをコメントで貼付。
- テクニカルライターがマージ後の Markdown を取得し、Markdown2Image で 8 ページの PNG を作成。
- 生成した PNG を
reports/2024Q1ディレクトリに入れ、ImageMagick でreport-2024Q1.pdfを作成。 - Directus の
postsレコードにファイルをドラッグ&ドロップ。ステータスを「published」に変更すると Flow が動き、Slack とメールで通知。 - 顧客からのコメントは Directus のディスカッションタブに集約され、次回の改善点として Issue 化。 結果として、以前は 3 人が丸 1 日かけていた作業が半日で終わり、レビュー品質も向上しました。
- IR 資料: Markdown に埋め込んだ KPI を PDF にして投資家アップデートに転用。
- オンボーディング: 社内トレーニング資料を Markdown で管理しつつ、受講者には PDF ハンドブックを配布。
- 変更履歴の証跡: バージョンごとに PDF を Directus に残せば、契約時に「どの資料を共有したか」を証明できます。
| 症状 | 対応 |
|---|---|
| 日本語が豆腐(□)で表示される | テンプレートに対応フォントを埋め込む、またはシステムフォントを指定 |
| PDF のファイルサイズが大きい | PNG を圧縮、画像枚数を減らす、convert 実行時に -quality 85 を付与 |
| ページ番号が 2/0 になる | {{page}} / {{pages}} のスペルを確認し、テンプレートを再読み込み |
| Directus へのアップロードに時間がかかる | バージョンをまとめて ZIP に入れてからアップロードし、Directus 内で解凍 |
Directus のロール設定で、誰が編集できるか・公開できるかをきめ細かく定義しましょう。例えば:
- Draft を作成できるのは技術ライターとオペレーションのみ。
- 公開権限はマネージャー以上に制限。
- ダウンロードは社内全員可、ただし外部共有リンクには有効期限を設定。 これにより、情報統制とスピードのバランスが取れます。
このフローをさらに進化させるなら、次のようなアイデアがあります。
- Markdown の frontmatter を基に、Directus Flow で自動タグ付け。
- 画像生成を API 化し、CI/CD からコマンド一発で Deck テンプレートへ流し込む。
- PDF に QR コードを埋め込み、最新版やインタラクティブなダッシュボードへ誘導。
「Markdown で書き、PDF で届ける」仕組みを Directus に統合すると、情報が散らばらず、チーム全体のレスポンスも向上します。今日からでも少人数で始められる手順なので、まずは 1 つのレポートで試してみてください。
- 脚注: Markdown で脚注記法を使い、PDF では脚注を小さくまとめる。印刷時にも可読性が保てます。
- 差分表示: 重要なページでは前回からの差分を色付きのラベルで表示。テンプレートに
diff-positivediff-negativeといったスタイルを作っておくと便利です。 - 目次の自動化: Markdown を
pandocで一度 HTML 化し、見出し一覧を抽出して PDF 冒頭に貼り付けると、人手で目次を作る作業がいりません。
- カバーページ(目的、期間、担当者)
- ハイライトと主要 KPI
- チーム別の進捗
- リスクとブロッカー
- 次のアクション
- 付録(SLA、FAQ、Raw データへのリンク) この構成をテンプレートにしておけば、多言語展開しても迷いません。
- 翻訳対象の markdown を
lang別にフォルダ分けし、同じ段落番号を維持。 - 用語集(Glossary)をスプレッドシートで管理し、Directus の
tagsやseoフィールドに反映。 - チェックリストに「訳語更新」「ローカライズ済みテンプレート反映」を追加。
| 指標 | 目的 |
|---|---|
| PDF 発行までのリードタイム | プロセス効率を把握 |
| レビュー指摘件数 | 品質改善の余地を測定 |
| ローカライズ済み言語数 | グローバル供給力を可視化 |
| PDF ダウンロード数 | 利用状況の確認 |
Directus にフォームを設置し、PDF を受け取った顧客や社内メンバーへ簡単なアンケートを送付。「情報量は十分か」「グラフは読みやすいか」を定期的にヒアリングし、テンプレート改善に生かします。
ここまで紹介した流れは汎用的ですが、チーム事情に応じてカスタマイズしてください。重要なのは、Markdown の柔軟さを失わずに PDF の信頼性を得ること。Directus という集約ポイントがあるおかげで、権限管理・通知・履歴がワンストップになります。ぜひ日々のアップデートに組み込んでみてください。
- 各リリース後に Retro を実施し、PDF 化で困った点を洗い出す。
- Issue 化してテンプレートや手順を更新。
- Directus の Flow を改良し、通知先やメッセージを最適化。
- 翌月のレポートで検証し、成果を記録。 この PDCA を回し続けることで、少人数でも高品質な配布体験を維持できます。
- Markdown で frontmatter を更新
- スクリーンショットの解像度確認
- Markdown2Image で各カードをプレビュー
- PNG を番号順に整理
- ImageMagick で PDF 化
- Directus へアップロードし、
status=draft - マネージャー承認後に
status=published - Flow 実行ログを確認
- 次回の改善点を Issue に追加
Markdown から PDF への道筋を固定すると、チームの知識共有が一段と滑らかになります。Directus を中核に据えたこの方法は、規模の大小に関係なく導入できます。まだ試していないなら、今週のレポートからさっそく始めましょう。
- 社外セミナー資料: Markdown で講義ノートを管理し、参加者向けに PDF を配布する。
- サポートナレッジ: よくある問い合わせを Markdown でまとめ、顧客には PDF 手順書を送付。
- リリースノート: 主要機能だけをまとめた PDF をマーケチームへ引き渡し、そのままプレスに流用。
最終的には、Markdown をソース・オブ・トゥルースに保ちながら、PDF 以外のフォーマット(HTML、Power BI 連携など)へも展開できます。Directus でコンテンツとメタ情報を管理しておけば、どんなチャンネルにも素早く再利用できます。PDF 化の仕組みはその第一歩です。
| 時間 | 作業 |
|---|---|
| 09:00 | Markdown のドラフトをレビュー、コメント反映 |
| 10:00 | 章ごとに Markdown2Image でカード化、PNG 保存 |
| 11:00 | PDF 生成、初回チェックリスト実施 |
| 12:00 | Directus にアップロードし、ドラフト共有 |
| 13:00 | フィードバックを反映し最終版を公開 |
| 14:00 | Flow が顧客へ自動送信、活動ログを確認 |
| 半日あればすべて完了します。これなら急な依頼にも対応できます。 |
日々のレポーティングを少しアップデートするだけで、相手の受け取り方は劇的に変わります。Markdown の柔軟さと PDF の安心感を両立させ、Directus で全体をオーケストレーションする。この仕掛けを整えておけば、どの言語・どのチームにもすぐ展開でき、組織の情報伝達レベルを底上げできます。
最初の 2 回は少し手がかかりますが、テンプレートとチェックリストさえ揃えば、以降は手順通りになぞるだけです。恐れずに一歩踏み出してみてください。
追記: 余裕があれば、PDF へのショートカットキーや自動化スクリプトをチーム wiki にまとめておくと、さらにスムーズになります。