PDFの表をMarkdownへ変換

表はPDFから無傷で取り出すのが最も難しいものです。PDF自身は表を含んでいることを知らないからです。データには行もセルも罫線もなく、たまたま揃った座標に置かれた文字があるだけです。表を取り戻すとは、その揃いを見つけることです。

23 件の評価で 5 段階中 5.0

ここに PDF または Word をドロップ

またはパソコンからファイルを選択

PDF・Word (.docx) · 最大 50 MB

PDFの表をMarkdownに抽出するには?

PDFをこのページのドロップエリアに追加します。連続する複数行で同じ列位置に揃う文字が表として判定され、GitHub Flavored Markdownのパイプテーブルとして出力されます。

PDFの表をコピーすると崩れるのはなぜ?

コピーは読み順ではなく描画順に文字を返し、PDFにはセルの境界がありません。列の構造は横座標から組み直す必要があり、コピーして貼る操作はそれを試みません。

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

  1. 1

    文書を変換

    PDFをドロップエリアに追加します。表は文書の他の部分と一緒に自動で判定されます。

  2. 2

    列数を確認

    プレビューを原本と見比べます。常に空の列がある場合、元の文書で見出しが2列にまたがっていたことがほとんどです。

  3. 3

    残りを直す

    左のペインでMarkdownを直接編集します。パイプテーブルはただのテキストなので、セルの追加や結合は小さな修正で済みます。

  4. 4

    貼り付け先へ

    表をGitHub、Obsidian、README、ドキュメントサイトに貼り付けます。GFMのパイプテーブルはいずれでも表示されます。

表の判定はどう動くか

PDFのすべての文字列には横座標と幅があります。二つの文字列の横方向の間隔が本文の文字の高さのおよそ1.5倍を超えたところで、変換器は行を分割します。この距離は語間よりはるかに広く、段間よりは狭いものです。

この条件だけでは両端揃えの段落で誤判定します。そうした段落にも広い間隔があるためです。そこで判定にもう一つの条件を加えます。その間隔が連続する行で同じ位置に来ることです。語間の空きが行をまたいで揃うことはありませんが、本物の列は必ず揃います。

連続する2行以上が、繰り返し現れる列位置を2つ以上共有したときにだけ、その塊が表として出力されます。それ以外はすべて段落の文字のまま残ります。

残るものと残らないもの

Markdownの表記法は意図的に簡素で、どんな変換器でも保てる範囲の上限がそこで決まります。

  • 残る: 列の構造、行の順序、セルの文字、セル内の太字や斜体
  • 残る: 先頭行は見出し行として扱われ、ほとんどの文書の組み方と一致します
  • 失われる: 結合セルはMarkdownに対応がなく、最も左の列へ潰れます
  • 失われる: 入れ子の表、セルの背景色、罫線、列幅
  • 近似: 複数行に折り返したセルの文字は一つのセルにまとめられます

判定が苦手な場合

列の揃いが一定しない表が難しい場合です。セルが個別に中央揃えされていたり、右揃えの数値列が左揃えの隣の列と狭い間隔で並んでいたりする場合です。判定は、ありもしない表を作り出すより文字を段落のまま残すほうを選ぶよう調整してあります。誤った表は普通の文字より片付けにくいからです。

財務諸表、価格表、仕様書、比較表はおおむねうまく変換されます。枠で囲まれた項目が並ぶ密なフォームはうまくいきません。その構造は文字の揃いではなく描かれた矩形から来ているためです。

よくある質問

表だけを抜き出して他を省けますか?
自動ではできません。文書全体が変換され、表はその位置に置かれます。出力はただのテキストなので、周囲の段落を消すのは数秒で済みます。
複数ページにまたがる表はどうなりますか?
ページごとに判定するため、改ページをまたいで続く表は二つの表になります。繰り返された見出し行を消せば結合できます。
右揃えの数値列も判定できますか?
おおむねできます。判定はセルの左端でまとめるため、幅がまちまちな右揃えの数値列はまれに分かれることがあります。合計を原本と照らし合わせてください。
MarkdownではなくCSVで受け取れますか?
今のところできません。Markdownのパイプテーブルは表計算ソフトや短いスクリプトで簡単にCSVへ変換でき、CSV出力は予定に入っています。

関連コンバーター

Further reading