PDF のテキスト レイヤーとメタデータの読み方

PDF を開き、必要なページを指定して実行ボタンを押すと、ファイルが宣言しているタイトル・作成者・件名・作成ソフト・生成ソフト・ページ数が表示され、続けて選択した各ページのテキスト レイヤーが --- Page N --- の見出しごとに並びます。ファイルはブラウザー内にとどまり、読み取りは同梱の pdf-lib と pdf.js が行います。

実際のテキスト レイヤーを持つ 3 ページの文書は約 0.3 秒で返り、52 ページのファイルは 1-30 に絞るまで 30 ページの上限を文章で知らせました。テキスト レイヤーのないページ(スキャンなど)は文字を返さないため、空の結果を出す代わりにその旨を表示します。

  1. ファイル選択で PDF を選ぶか、ドロップ領域にドロップします。検査するのは 1 ファイルずつで、2 つ目を選ぶと 1 つ目と入れ替わり、PDF でないファイルは「この形式のファイルには対応していません。」として拒否されます。
  2. 「検査するページ」欄にページを書きます。1,3,5 のように個別指定、1-5 のような範囲、3-1 のように逆順、空欄なら文書全体です。1 回に検査できるのは最大 30 ページです。
  3. 「ファイルを処理」を押します。選択したページのテキスト レイヤーを読む間、進行バーが進みます。
  4. 出力を読みます。メタデータ 6 項目(PDF にない項目はダッシュで表示)に続き、指定した順序で 1 ページごとのセクションが並びます。
  5. 「コピー」で結果を取得します。ブロック全体がクリップボードに入り、状態行がそれを知らせます。「クリア」はファイル一覧・出力・指標を空にし、ページ欄は入力したまま残します。

出力と制限の意味

読み取る内容

メタデータ:タイトル、作成者、件名、作成ソフト、生成ソフトの各項目とページ数で、いずれもファイルの宣言どおりです。pdf-lib で作られた文書は作成者が未設定でも生成ソフトに pdf-lib と書かれ、ファイルにない項目はダッシュで表示されます。

テキスト:選択したページのテキスト レイヤーを pdf.js で読みます。抽出はページの改行を保ち、同じ行にある断片は半角スペース 1 つでつなぎ、指定した順序で出力するため、3-1 ならページ 3 がページ 2 より先に並びます。それ以外は解釈しません。画像・フォーム フィールド・注釈はそのままです。

数値の数え方

ページは文書全体のページ数、検査するページはこの実行で選んだページ数だけを数えます。52 ページのファイルで 1-30 を指定しても 52 と 30 の両方が表示されます。入力サイズは開いたファイルの大きさです。

30 ページの上限は、1 ページずつブラウザー内で解析するために設けています。セッションの初回は PDF エンジンの読み込みも加わるためキャッシュが冷えていると数秒かかりますが、30 ページの実行そのものは約 0.3〜0.4 秒で終わりました。長い文書で空欄にすると上限のメッセージで停止するので、範囲を絞って再実行してください。

制限と互換性

1 回につき 1 つの PDF、最大 250 MB、OCR は行いません。スキャンしたページには文字ではなく画像が入っているため、テキスト レイヤーが見つからないと表示します。暗号化またはパスワード保護されたファイルは拒否され、破損したファイルは解析器の生のエラーではなく「このファイルを PDF として読み取れませんでした。破損していないか確認してください。」と答えます。

処理はすべてページ内で完結します。PDF はアップロードされず、読み込み後はオフラインでも動作し、結果はどこにでも貼り付けられるプレーン テキストです。検査とコピーのみで、メタデータやページをファイルへ書き戻すことはありません。

最近使ったツール: