PDFの表をMarkdownの表に変換する
執筆 pdftomd.tools チーム · 更新日 · 約8分で読めます
PDFの表をMarkdownに変換するには、テキスト層からセルを組み立て直す変換ツールを使い、結果をページと見比べます。罫線のある表と列がきれいにそろった表はうまくいきますが、結合セル、回転した表、複数ページにまたがる表には手作業が必要です。私たちのオンラインのPDF MD 変換ツールは、そのまま編集できるGFMのパイプテーブルを書き出します。

PDFの表が崩れる理由:PDFはセルではなく、位置の決まったテキストを保存する
PDFの表をMarkdownに変換する前に、ファイルに実際に何が入っているかを知っておくと役立ちます。スプレッドシートは「12ドル」が3行目・2列目にあることを知っていますが、PDFはたいてい知りません。ページにはx座標とy座標に置かれたテキスト片と、罫線があればそれとは別の線の描画が入っています。PDFの規格 ISO 32000-2 に書かれている通りです。タグ付きのPDFは表の構造を持てますが、書き出されたレポートや請求書のほとんどは、タグがないか、変換ツールが頼れないタグしかありません。

だから、PDFの表をMarkdownに変換しようとするツールはどれも、探偵のような仕事をします。単語とその位置を読み(私たちは pdf.js を使います)、線を探し、列と行がどこにあるかを決めます。セルが結合されていたり、不規則に折り返していたり、表が横向きに回転していたりすると、推測は難しくなります。
Markdownの表で表せるもの(GFMのパイプテーブル)
中心となるMarkdownには表がありません。一般的な記法は GitHub Flavored Markdown のものです。GFMのパイプテーブルは、ヘッダー行、ハイフンの区切り行、任意の数のデータ行でできています。区切り行のコロンで、左寄せ・右寄せ・中央を決めます。セル内の縦棒は \| とエスケープします。
| Plan | Price | Seats |
| :------- | ----: | :-------- |
| Free | $0 | 1 |
| Team | $12 | 10 |
| Business | $49 | Unlimited |“ブロックレベルの要素は表に挿入できない。”
この規則が、どんな変換にも上限を決めています。セルにはインラインのテキスト、リンク、コードは入りますが、リスト、2つ目の段落、入れ子の表は入りません。結合セル、2つ目のヘッダー行、キャプションの記法もありません。ヘッダー行1つとシンプルな格子を超えるものは、すべて単純にする必要があります。
罫線あり、罫線なし、結合セル:何が起きるか

表に罫線があるかどうかで、ツールがセルを見つける方法が変わります。私たちのツールは2つの方法を試します。
- 罫線のある表 にはセルの間に描かれた線があります。線が格子を作るので、行と列は描画からそのままわかります。最も確実に変換できます。
- 罫線なしの表 には線がなく、テキストが列にそろっているだけです。変換ツールは、すき間が縦にそろった行が3行以上あるかを探し、リスト、2段組みの本文、たまたまそろった段落を誤認しないようにしています。
- 結合セル は2列以上にまたがります。テキストは最初のセルに入り、覆われたセルは空になります。Markdownはまたがりを表せないからです。
セル内で折り返すテキストも、よくあるつまずきです。テキストが3行あるセルも1つのセルですが、雑な変換ツールは3つの行にしてしまいます。私たちのツールは、上揃えのセルでも上下中央のセルでも、折り返した行を1つのセルにまとめ直します。
ステップごとに:ブラウザでPDFの表をMarkdownに変換
- 変換ツールを開いてファイルをドロップします。何もアップロードされません。ページはファイルをローカルで読み、すぐに変換を始めます。
- プレビューの下の要約を確認します。見つかった表の数が表示されるので、表が抜けていればすぐわかります。
- Markdownの表を1つずつ元の文書と見比べます。まず列の数を数え、次に最初と最後の行を確認します。
- Markdownをコピーするか .md ファイルをダウンロードし、残りはエディターで直します。

Pen \| blue になるので、表は正しいまま保たれます。多くの人が3つ目のステップを飛ばします。ぱっと見では正しく見えても、1行だけ1列左にずれていることがあります。ページの残りの部分に使える確認方法は、書式を崩さずに変換する一般的なガイドを読んでください。
表を手で直す(そしてCSVという逃げ道)
変換のあとで私たちが最もよく行う修正は次の通りです。
- 結合セル。 Markdownにはまたがりがないので、覆われたセルすべてに値を繰り返すか、最初のセルに残して表の下にメモを加えます。
- ページをまたいで分かれた表。 余分なヘッダー行と区切り行を消せば、各部分がまた1つの表になります。下の私たちのテストでは、すべての行が分割を乗り越え、手が必要だったのはつなぎ目だけでした。
- ヘッダー行がない。 最初の行がすでにデータなら、ヘッダー行を自分で足します。ヘッダー行のないパイプテーブルは正しくありません。
- 列の数がそろっていない。 各行の縦棒を数えます。セルが少ない行はGFMのレンダラーが空のセルで埋め、多い行は切り捨てられます。

表がパイプテーブルには広すぎる、または不規則すぎるなら、CSVが賢い逃げ道です。行をスプレッドシートにコピーしてそこで整え、CSVをMarkdownファイルの隣に保管するか、単純にしたパイプテーブルを貼り戻します。変換は、すべてかゼロかである必要はありません。
私たちのテストセット:12種類の表のレイアウトと結果
上のレイアウトに、表にならないはずのファイル3つを加えた、reportlab と LibreOffice で作った12個のテスト用PDFを管理しています。変換ツールを変更するたびに、これで確認します。これは合成のテスト用ファイルで、実際のPDFのサンプルではありません。結果は成功率ではなく、各レイアウトで何が起きるかの地図として読んでください。
| レイアウト | 想定 | 検出 | 結果 |
|---|---|---|---|
| 罫線のある表 | 1 | 1 | 合格 |
| オフィスソフトから書き出した罫線のある表、セル内に縦棒 | 1 | 1 | 合格 |
| 罫線なし、右寄せの数字 | 1 | 1 | 合格 |
| 罫線あり、セル内でテキストが折り返す | 1 | 1 | 合格 |
| 罫線なし、セル内でテキストが折り返す | 1 | 1 | 合格 |
| 罫線なし、折り返したセルが上下中央 | 1 | 1 | 合格 |
| ヘッダーの下だけ線、本文とリストの間 | 1 | 1 | 合格 |
| 1ページに罫線ありと罫線なしの表が1つずつ | 2 | 2 | 合格 |
| 罫線あり、1つのセルが2列にまたがる | 1 | 1 | 合格(結合セルは分解) |
| 2段組みの本文(表にならないはず) | 0 | 0 | 合格 |
| 段落と番号付きリスト(表にならないはず) | 0 | 0 | 合格 |
| 90度回転した表 | 0 | 0 | 合格 |
この記事のために、さらに2つのテストを行いました。1つ目は往復テストです。4つのMarkdownの表を私たち自身の書き出しツールでPDFにして戻したところ、4つとも認識され、エスケープした縦棒や右寄せの数字も含めて、17行中17行が元のテキストと一致しました。2つ目は、私たちの書き出しツールが4ページに分けた60行の表です。戻すと、ページごとに1つずつ、計4つの表になり、60行すべてがそろっていました。2〜4ページ目では最初の行がヘッダー行に格上げされていて、まさに上で説明したつなぎ目です。
レイアウトモデルが必要になるとき
テキスト層を読むツールは、PDFの表をすばやくプライベートにMarkdownに変換しますが、手に負えない表もあります。スキャンした表には、OCRで加えるまで読み取れるテキストがありません。入れ子のヘッダーやまたがるセルのある密度の高い学術的な表には、ページを画像として見るモデルが必要です。
- Docling は表の構造と読む順番への対応をうたっており、Pythonでローカルに動きます。
- marker は表を整形し、オプションのLLMモードを使えばページをまたぐ表をまとめられるとしています。商用で使う前に、モデルの重みのライセンスを確認してください。
どちらもセットアップが多く必要で、それでも確認の手順は欠かせません。週に数個の表なら、ブラウザでPDFの表をMarkdownに変換し、つなぎ目を手で直して、重いツールは本当に必要なファイルのために取っておきましょう。
出典
- GitHub Flavored Markdown Spec, 4.10 Tables (extension) — GitHub, 2019
- ISO 32000-2:2020 Document management — Portable document format — Part 2: PDF 2.0 — ISO, 2020
- pdf.js — Mozilla
- Docling — Docling project
- marker — Datalab
よくある質問
PDFの表を自動でMarkdownに変換できますか?
テキストとして保存された表ならできます。罫線のある表や列のそろった罫線なしの表は、テキスト層を読む変換ツールでうまく変換できます。スキャンした表にはまずOCRが必要で、結合セルや回転した表は手での修正が必要です。
Markdownでは結合セルはどう扱われますか?
Markdownのパイプテーブルではセルを結合できません。変換ツールはテキストを最初のセルに入れ、覆われたセルを空にします。値を各セルに繰り返すか、表の下にメモを加えてください。
表が複数の表に分かれてしまったのはなぜですか?
PDFの各ページは別々に読まれるので、複数ページにまたがる表はページごとに1つの表として返ります。余分なヘッダー行と区切り行を消してつなげてください。長いレポートでは、変換後に最もよく行う修正です。
Markdownの表のセルにリストや改行を入れられますか?
GFMでは入れられません。セル内にブロックの内容は許されません。リスト項目はカンマ区切りの1行で書くか、レンダラーがHTMLを許すなら <br> を使ってください。
PDFの表をMarkdownに変換する最速の方法は?
数ファイルなら、ブラウザの変換ツールで変換して結果を手で直します。スキャンや複雑なファイルが数百あるなら、Docling のようなローカルのレイアウトモデルが、セットアップの手間をかける価値があるかもしれません。
表がMarkdownには広すぎる場合は?
Markdownに幅の上限はありませんが、幅の広い表は読みにくく編集しにくくなります。キーの列を共有する2つの表に分けるか、データをCSVのまま保ってそこにリンクしてください。

