PDFの表をMarkdownの表に変換する

執筆 pdftomd.tools チーム · 更新日 · 約8分で読めます

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

イラスト:PDFの表をMarkdownに変換。PDFのページ上の罫線のある表が、プレーンテキストのパイプテーブルになる

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 |
GFMのパイプテーブル:ヘッダー行、配置を決める区切り行、データ行。
“ブロックレベルの要素は表に挿入できない。”
GitHub Flavored Markdown Spec, 4.10節 Tables (extension)(翻訳)

この規則が、どんな変換にも上限を決めています。セルにはインラインのテキスト、リンク、コードは入りますが、リスト、2つ目の段落、入れ子の表は入りません。結合セル、2つ目のヘッダー行、キャプションの記法もありません。ヘッダー行1つとシンプルな格子を超えるものは、すべて単純にする必要があります。

罫線あり、罫線なし、結合セル:何が起きるか

イラスト:3種類の表を並べた図。罫線のある格子、罫線なしの表、結合セルのある格子

表に罫線があるかどうかで、ツールがセルを見つける方法が変わります。私たちのツールは2つの方法を試します。

  • 罫線のある表 にはセルの間に描かれた線があります。線が格子を作るので、行と列は描画からそのままわかります。最も確実に変換できます。
  • 罫線なしの表 には線がなく、テキストが列にそろっているだけです。変換ツールは、すき間が縦にそろった行が3行以上あるかを探し、リスト、2段組みの本文、たまたまそろった段落を誤認しないようにしています。
  • 結合セル は2列以上にまたがります。テキストは最初のセルに入り、覆われたセルは空になります。Markdownはまたがりを表せないからです。

セル内で折り返すテキストも、よくあるつまずきです。テキストが3行あるセルも1つのセルですが、雑な変換ツールは3つの行にしてしまいます。私たちのツールは、上揃えのセルでも上下中央のセルでも、折り返した行を1つのセルにまとめ直します。

ステップごとに:ブラウザでPDFの表をMarkdownに変換

  1. 変換ツールを開いてファイルをドロップします。何もアップロードされません。ページはファイルをローカルで読み、すぐに変換を始めます。
  2. プレビューの下の要約を確認します。見つかった表の数が表示されるので、表が抜けていればすぐわかります。
  3. Markdownの表を1つずつ元の文書と見比べます。まず列の数を数え、次に最初と最後の行を確認します。
  4. Markdownをコピーするか .md ファイルをダウンロードし、残りはエディターで直します。
スクリーンショット:私たちの変換ツールが、オフィスソフトのPDFの表をMarkdownのパイプテーブルにしている。セル内の縦棒はエスケープ済み
スクリーンショット:オフィスソフトから書き出した表。セル「Pen | blue」は Pen \| blue になるので、表は正しいまま保たれます。

多くの人が3つ目のステップを飛ばします。ぱっと見では正しく見えても、1行だけ1列左にずれていることがあります。ページの残りの部分に使える確認方法は、書式を崩さずに変換する一般的なガイドを読んでください。

表を手で直す(そしてCSVという逃げ道)

変換のあとで私たちが最もよく行う修正は次の通りです。

  • 結合セル。 Markdownにはまたがりがないので、覆われたセルすべてに値を繰り返すか、最初のセルに残して表の下にメモを加えます。
  • ページをまたいで分かれた表。 余分なヘッダー行と区切り行を消せば、各部分がまた1つの表になります。下の私たちのテストでは、すべての行が分割を乗り越え、手が必要だったのはつなぎ目だけでした。
  • ヘッダー行がない。 最初の行がすでにデータなら、ヘッダー行を自分で足します。ヘッダー行のないパイプテーブルは正しくありません。
  • 列の数がそろっていない。 各行の縦棒を数えます。セルが少ない行はGFMのレンダラーが空のセルで埋め、多い行は切り捨てられます。
スクリーンショット:結合セルのある表をMarkdownに変換。結合されたテキストが最初のセルに入り、続いて空のセルがある
スクリーンショット:PDFでは「Not reported」が2列にまたがっています。Markdownでは最初のセルに入り、そのあとに空のセルが続きます。

表がパイプテーブルには広すぎる、または不規則すぎるなら、CSVが賢い逃げ道です。行をスプレッドシートにコピーしてそこで整え、CSVをMarkdownファイルの隣に保管するか、単純にしたパイプテーブルを貼り戻します。変換は、すべてかゼロかである必要はありません。

私たちのテストセット:12種類の表のレイアウトと結果

上のレイアウトに、表にならないはずのファイル3つを加えた、reportlab と LibreOffice で作った12個のテスト用PDFを管理しています。変換ツールを変更するたびに、これで確認します。これは合成のテスト用ファイルで、実際のPDFのサンプルではありません。結果は成功率ではなく、各レイアウトで何が起きるかの地図として読んでください。

私たちのテストでは:レイアウトごとの想定と検出された表の数(pdftomd.tools チーム、2026年10月18日)
レイアウト想定検出結果
罫線のある表11合格
オフィスソフトから書き出した罫線のある表、セル内に縦棒11合格
罫線なし、右寄せの数字11合格
罫線あり、セル内でテキストが折り返す11合格
罫線なし、セル内でテキストが折り返す11合格
罫線なし、折り返したセルが上下中央11合格
ヘッダーの下だけ線、本文とリストの間11合格
1ページに罫線ありと罫線なしの表が1つずつ22合格
罫線あり、1つのセルが2列にまたがる11合格(結合セルは分解)
2段組みの本文(表にならないはず)00合格
段落と番号付きリスト(表にならないはず)00合格
90度回転した表00合格
回転した表は既知の限界です。90度回転したテキストは表として認識されません。

この記事のために、さらに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に変換し、つなぎ目を手で直して、重いツールは本当に必要なファイルのために取っておきましょう。

よくある質問

PDFの表を自動でMarkdownに変換できますか?

テキストとして保存された表ならできます。罫線のある表や列のそろった罫線なしの表は、テキスト層を読む変換ツールでうまく変換できます。スキャンした表にはまずOCRが必要で、結合セルや回転した表は手での修正が必要です。

Markdownでは結合セルはどう扱われますか?

Markdownのパイプテーブルではセルを結合できません。変換ツールはテキストを最初のセルに入れ、覆われたセルを空にします。値を各セルに繰り返すか、表の下にメモを加えてください。

表が複数の表に分かれてしまったのはなぜですか?

PDFの各ページは別々に読まれるので、複数ページにまたがる表はページごとに1つの表として返ります。余分なヘッダー行と区切り行を消してつなげてください。長いレポートでは、変換後に最もよく行う修正です。

Markdownの表のセルにリストや改行を入れられますか?

GFMでは入れられません。セル内にブロックの内容は許されません。リスト項目はカンマ区切りの1行で書くか、レンダラーがHTMLを許すなら <br> を使ってください。

PDFの表をMarkdownに変換する最速の方法は?

数ファイルなら、ブラウザの変換ツールで変換して結果を手で直します。スキャンや複雑なファイルが数百あるなら、Docling のようなローカルのレイアウトモデルが、セットアップの手間をかける価値があるかもしれません。

表がMarkdownには広すぎる場合は?

Markdownに幅の上限はありませんが、幅の広い表は読みにくく編集しにくくなります。キーの列を共有する2つの表に分けるか、データをCSVのまま保ってそこにリンクしてください。