PDFテキスト抽出

段組みの読み順を整えてTXT・Markdownで抽出

1ファイル選択2設定3処理4保存

PDFを選ぶと内容を解析して表示します。

ファイルはこのブラウザ内でのみ処理されます。サーバーにはアップロードされません。

段組みの読み順を整えてTXT・Markdownで抽出

別のツールで続ける
作業の設定
出力設定
1 / 1

番号は抽出される読み順です。グレーの点線は削除されるヘッダー・フッターです。

テキストプレビュー

暗号化されたPDFは先にパスワードを解除してください。ページの内容を中心に処理するため、しおり・添付・フォーム・署名の保持は保証されません。原本を保管し、結果をご確認ください。

PDFテキスト抽出について

PDFの文字は文章として保存されているわけではなく、「この位置にこのフォントのこのグリフを描け」という命令の並びです。行・段落・読む順序という概念がファイルにないことも珍しくありません。このツールはpdf.jsで文字の断片(ラン)と位置・大きさを読み、座標だけを手がかりに行・段組・段落・見出しを組み立て直します。

結果の質を左右するのは2点です。PDFが各グリフについて「Unicodeでは何の文字か」を正しく記録しているか、そしてレイアウトが座標から推定できる形か。スキャンPDFのようにテキスト層がないページは空になり、PDF OCRを案内します。

抽出した日本語が文字化けする理由

PDFに埋め込まれるフォントは使った文字だけのサブセットがほとんどで、本文は文字コードではなくフォント内のグリフ番号で書かれます。番号をUnicodeに戻す表がToUnicode CMapです。これが欠けていたり誤っていたりすると、画面では正しく見えてもコピーすると無関係な漢字や記号、空白になります。形を描くだけなら対応表は要らないからです。

Type 3フォントはグリフの形をPDFの描画命令で直接定義したもので、Unicode情報をまったく持たないことがよくあります。このようなPDFはどの抽出ツールでも元に戻せず、ページを画像として扱ってOCRするほうが早道です。見分け方は簡単で、PDFビューアで一文をコピーしてメモ帳に貼ってみてください。そこで化けるなら抽出でも化けます。

順序が入れ替わる理由と、このツールの並べ方

PDFは文字を描く順序を自由に決められます。2段組の論文で左段の1行目の次に右段の1行目を描くファイルもあれば、柱や脚注を最後に描くファイルもあります。ファイル内の順序どおりにつなぐと、2つの段の行が交互に混ざります。

このツールはファイル内の順序を使わず、XY-cutで並べ直します。文字を横の帯に積み、複数の帯にわたって同じ位置に縦の空白(段間)が続けば、その領域を多段組とみなして空白で切り、各段の中で同じ処理を繰り返します。出力は上の領域から、同じ領域の中では左の段からです。段をまたぐ図のキャプションや表があると段間が途切れ、順序がずれることがあります。

回転した文字と縦書きの文字は、横書き本文の段組み解析から外して別に読みます。90°回した図面の注記や表見出しは角度ごとにまとめてその向きの行として読み、縦書きの本文は右の列から上→下の順に読みます。どちらもそのページの横書き本文の後ろに別の段落として付け、元の位置(表のセルなど)には戻しません。

空白と改行を復元する規則

多くのPDFは空白文字を保存せず、ペン位置を動かすだけです。このツールは前後の文字の間隔が文字サイズの0.12倍を超えると空白を入れます。漢字・かな・ハングル同士はもともと字幅が広く誤判定が多いため、0.22倍を基準にしています。字間を空けた見出しは「見 出 し」のように開くことがあります。

基準線が文字サイズの35%以内でそろう文字を1行にまとめます。「改行をつなぐ」では、日本語・中国語の行どうしは空白なしで連結し、英語の行末ハイフン(exam-/ple)は、つなげた語(example)が文書内の別の場所にあるか、後半が-tion・-mentのような接尾辞のときだけ元に戻し、それ以外はハイフンを残します(well-/known → well-known)。

柱・ノンブル・見出しの判定

各ページの上下12%の帯にある行を、数字を#に置き換えて比較し、全ページの半数以上(最低2ページ)に同じ行があれば柱として本文から外します。「- 12 -」「12 / 40」のような単独のページ番号も外します。見出しは文書全体の本文サイズの1.15倍以上で、3行・160文字以内のブロックです。大きさの順にMarkdownの見出しレベル1〜4を割り当てます。

例

2段組の論文

入力
段間約18pt、ファイル内の描画順は行ごとに左右交互
結果
左段すべて → 右段すべて

段間が1文字分(em)以上あり、多くの行にわたって続くので段の境界と判定されます。

日本語の空白判定

入力
10ptの漢字2文字の間隔1.5pt
結果
空白なし

基準は10×0.22=2.2ptです。同じ1.5ptでも英字どうしなら基準1.2ptを超えるので空白が入ります。

40ページの報告書の柱

入力
全ページ上端に「2026年度事業計画 | 3」のような行
結果
本文から除外(柱)

数字を#に置き換えると全ページで同じ文字列になり、必要な20ページ(40×0.5)を上回ります。

使い方

  1. PDFを読み込むと、ページごとの段数とテキスト層の有無が表示されます。
  2. TXT/Markdown、改行の扱い、柱の除去を選びます。
  3. プレビューで順序を確かめ、コピーまたは保存します。

よくある質問

コピーすると文字化けします。

グリフをUnicodeに戻すToUnicode情報がない、または誤っているPDFです。抽出では直せないので、PDF OCRで文字を認識し直してください。

結果が空です。

スキャンや写真から作ったページでテキスト層がありません。PDF OCRでテキスト層を加えてから抽出してください。

縦書きの本文は出てきますか?

はい。縦書きフォントの文字は右の列から上→下の順に読み、ページの横書き本文の後ろに段落として出力します。字下げした列で段落を分けますが、ルビや割注の位置までは再現しません。

表の中身が1行に混ざります。

このツールは文章向けです。表はPDF表抽出ツールがセルの境界を探します。

関連ガイド

出典

基準日:

プライバシーとデータの扱い