PDFをテキスト(TXT)に変換する方法と、抽出後に確認すべき6つのポイント

PDFをテキストに変換するには、PDFにテキストレイヤーが入っている必要があります。抽出ツールが取り出すのはファイルに保存された文字で、ページの画像ではありません。必要なページだけをTXTに書き出し、原本と照らし合わせて6点を確認します。空白ページ、段組みの順序、ヘッダー・フッターとページ番号、表、数式と記号、文字化けです。改行の整理は、順序が正しいと確認できてから最後に行います。 TXTは、メモへの転記、引用、長いマニュアルをテキストエディタで検索する、別の文書に一部を流用する、といった用途に向いています。ただしページの複製ではありません。フォント、画像、段組み、表の罫線は失われ、文字の並び順はPDFがどう作られたかに左右されます。
PDFをテキストに変換すると、何が手に入るのか?
プレーンテキストに含まれるのは文字と改行だけです。PDFをテキストに変換すると、テキストとして保存されている文字がファイルから順に読み出され、一続きに並べられます。太字の見出しは普通の1行になり、表は単語と数字の並びになり、画像は消えます。
意外に思われやすいのが順序です。PDFが記録しているのは、それぞれの文字がページのどの位置に描かれるかであり、「次にどの段落が来るか」を記録しているとは限りません。PyMuPDFのドキュメントもはっきりと、プレーンテキストの抽出では結果を整えることはせず、PDFの場合は「output not in usual reading order, unexpected line breaks and so forth」(通常の読み順にならない出力や、予期しない改行など)が起こりうると書いています(PyMuPDF テキスト抽出のレシピ)。つまり、文字が1つも欠けていなくても、読むと順序がおかしいTXTになることがあります。
そのPDFに抽出できるテキストはあるか?
変換の前に、PDFを開いてカーソルで1文を選択してみてください。
- 単語が1つずつハイライトされる: そのページにはテキストレイヤーがあり、抽出ツールで読み取れます。
- 1文も選択できない: そのページにはテキストレイヤーがない可能性が高いです。抽出ツールが読める文字はなく、iSomorの「PDF テキスト抽出」もOCRは行いません。判断がつかなければ、まずツールで抽出してみてください。読み取れる文字がないページは一覧で表示されます。
- パスワードを求められる、またはコピーが禁止されていると表示される: 文書が保護されています。処理する権限のある、保護のかかっていないコピーを所有者に依頼してください。
1つの文書に両方の種類のページが混在することもあります。たとえば、署名ページの画像が数ページ挟まれた報告書です。そうしたページから文字が抽出できないのは想定どおりです。
PDFをTXTに変換する手順は?
ここでは iSomor の PDF テキスト抽出 を使った手順を紹介します。ブラウザ上でPDFの既存のテキストレイヤーを読み取り、ページごとに確認してから文字を取り出せます。
- PDFを1つ選ぶ。 一度に処理できるのはテキストを含むPDF1つで、最大20 MB・200ページです。200ページを超えるファイルは、一部のページだけが必要な場合でも受け付けられません。ファイルはブラウザ内で処理され、アップロードされません。
- 必要なページを入力する。 「ページ範囲」を空欄にすると全ページ、
1-3, 5のように範囲も指定できます。ページ番号は表紙を含めてファイルの先頭から1と数えた位置なので、紙面に印刷されたページ番号と違うことがあります。1章だけ必要なら、その章だけを抽出すれば後の確認が楽になります。 - 1ページずつプレビューする。 ページを順に送り、原本と見比べます。選択したページの一部に読み取れる文字がない場合は、そのページ番号が一覧表示されます。非表示レイヤーの文字をスキップしたページも同様に表示されます(PDFビューアと同じく、初期状態で非表示のレイヤーの文字は抽出されません)。選択したページのどれにも読み取れる文字がない場合は、「選択ページに読み取れる文字がありません」と表示され、TXTは作成されません。
- コピーまたは保存する。 抽出した文字をすべてコピーするか、TXTとして保存します。コピーした文字にもTXTにも、ページとページの間には必ず改ページ文字(フォームフィード)が1つ入るので、ページの境目はわかります。TXTはUTF-8、改行コードLFで保存されます。
1ページあたり最大20万文字、合計で最大100万文字まで扱えます。とても長い文書は、何回かに分けて変換してください。
TXTを使う前に、どこを確認すべきか?
原本のPDFをテキストの横に開き、まず次の箇所を見てください。抽出したテキストで問題が起きやすい場所で、それぞれ対処法が異なります。
| 確認する項目 | TXTでの見え方 | 対処法 |
|---|---|---|
| 空白ページ | 読み取れる文字がないページとして番号が表示される、または選択ページに文字がないというメッセージが出る | そのページが画像かどうかを確認します。ファイル全体が壊れていると決めつけないでください。ほかのページは問題ないかもしれません。 |
| 段組みの順序 | 左段の文の途中に右段の文の途中がつながっている | 範囲を絞って抽出し直し、ページと見比べます。まだ改行は消さないでください。消すと問題が見えなくなるだけです。 |
| ヘッダー・フッター・ページ番号 | 段落の途中に柱やページ番号が入り込んでいる | ページと照らして確認できた行だけを削除します。1行だけの数字は節番号や本文のデータかもしれません。 |
| 表 | セルが単語と数字の羅列になり、順序が変わることもある | 数値を使う前に、原本の表をもとに行を組み直します。数字だけでなく見出しと単位も確認します。 |
| 数式と記号 | 上付き・下付き、分数、マイナス記号、ギリシャ文字が平らになったり消えたりする | 数式は原本から手で写すか、「原本の何ページ参照」としておきます。 |
| 文字化け | PDFでは正常なのに、TXTでは四角や疑問符、別の文字になっている | ファイル内のフォントのエンコーディングが原因です。改行の整理では直りません。同じ文書の別の書き出し版を探してください。 |

段組みの乱れには、それ自体の原因があります。抽出ではなく翻訳をしている場合も、同じ原因で2段組みの論文の訳文が順不同になります。詳しくは 2段組みPDFを翻訳したら読む順番が崩れたとき をご覧ください。
改行はいつ整理するべきか?
順序が正しくなってからです。抽出したテキストは印刷された行の終わりごとに文が切れていることが多く、まとめて全部つなげたくなります。しかし2つの段がまだ混ざっていたり、段落の途中にフッターが残っていたりすると、改行をつなげても間違った断片がくっつくだけです。
順序が正しければ、段落内の単独の改行をつなげ、段落間の空行は残す、という処理はたいてい安全です。見出し、箇条書き、行末のハイフンは別途確認が必要です。PDFからコピーした文字が乱れる理由 では、iSomor のテキスト整形 を使って、これらのケースを実際の処理前後の例で説明しています。

プレーンテキストが向かないのはどんなとき?
再利用したい文字が欲しいなら、プレーンテキストが適しています。一方、レイアウトそのものに意味がある場合、たとえば行ごとに読む必要がある表、キャプション付きの図、文脈の中の数式などには向きません。
本当の目的が外国語のPDFを読むことなら、TXTに変換してから翻訳すると、そうした文脈を捨ててしまいます。iSomorは元のテキストPDFを直接翻訳し、ページのレイアウトをできる限り保つので、訳文をもとの位置で読むことも、原文と訳文を並べた対訳PDF で読むこともできます。ページに何が残るかは iSomorはPDF翻訳時にレイアウトを保持しますか? で説明しています。
よくある質問
「読み取れる文字がありません」と表示されるのはなぜ?
選択したページのどれにも、ツールが読み取れるテキストレイヤーがないため、TXTは作成されません。スキャンしたページや画像として保存されたページである可能性が高いです。抽出ツールが読むのは保存された文字で、画像の中の文字を認識するわけではありません。可能であれば、元の文書から書き出したPDFを入手してください。
TXTにはPDFのレイアウトが残る?
残りません。文字はPDFに保存されている順に並び、簡単な改行だけが復元されます。段組み、表、数式の表記は乱れることがあるため、上の確認が必要になります。
ページ番号はどう入力すればいい?
表紙を含めて、ファイルの先頭から1と数えた位置で入力します。たとえば 1-3, 5 は最初の3ページと5ページ目です。同じページを2回入力しても抽出は1回だけで、入力した順に並びます。
ページの間にある見慣れない記号は何?
コピーした文字とTXTで、ページを区切っている改ページ文字です。エディタによっては見えないこともあれば、小さな記号や ^L として表示されることもあります。ページの区切りとして残しても、削除してもかまいません。
パスワード付きのPDFをテキストに変換できる?
iSomorの「PDF テキスト抽出」ではできません。パスワードで保護されたPDFや、コピーが許可されていない文書は開けません。処理する権限のある、保護のかかっていないコピーを使ってください。