LinutMintでPDFからTextを作成する方法

記事の更新日:2026/09/29 評価を加筆

1.概要

PDFは汎用性が高く、様々な場面で利用されています。一番の特徴はデータのセキュリティを保つことです。Excelなどの表計算ソフトはタブを利用することで3次元的にデータを保管しています。これをPDFにすることで特定のタブのデータだけを選択して、読み出し専用のデータにすることができます。

しかし、PDFからTextを切出したい事があります。不思議なことにPDFのテキスト部分をドラッグ&ドロップでテキストに取れることもあります。しかし、何も操作できないこともあります。少しネットで調べて、PDFからTextの作成方法を実施したのでその内容を記述します。

私の評価は以下の通りです。

(1) PDFには内部にテキスト文書を保存しているものがあります
(2) テキスト文書がある場合は、コマンドで簡単に取り出すことができます
(3) テキスト文書がない場合、PDFをイメージに変えて、OCRで読み込みます
(4) PDFは活字ですが、OCR読み込みは完全ではありません。修正が必要です

2.詳細

(1) PDF内部にText文書がある場合

PDFには種類がありますが、PDF内部にText文書があるものと、そうではないものがあります。PDF内部にText文書があるものは、比較的かんたんにPDFからTextを作成できます。

ubuntuでは、pdftotextコマンドを利用できます。

(2) PDF内部にText文書がなく、イメージファイルの場合

pdftotextを実行しても何も出力されない場合が該当します。
この場合はPDFをイメージファイル(png)に変換して、OCRソフトでTextにします。

PDFをPNGに変更するためには、pdftoppmを利用します
pdftoppm -png xxxxxx.pdf yyyyyy
yyyyyy.zzzzz.pngが作成されます。

pngをOCRソフトでTextを切り出すには、tesseractを利用します

sudo apt install tesseract-ocr
sudo apt install tesseract-ocr-jpn

tesseract yyyyyy.zzzzz.png output -l jpn
output.txtが作成されます。

3.所見

PDF内にTestが存在するケースがあることを今回初めて認識しました。PDFのテキストにマウスを合わせてドラック&コピーできるケースだと言えます。これができるPDFファイルはテキストを内蔵しています。調べてみると知らないことが多いものです。

今回、テキストを内部に持たないPDFでも画像として抽出してOCR機能でテキストを読み出せることを知りました。気になる点は精度です。私の感触では80%程度だと思います。日本語にも対応していますが、良く似た漢字は誤変換してしまいます。

4.追加

私は紙媒体のデータはスキャナーを利用してPDFに変換して保存しています。紙媒体はスペースを取るので電子化したPDFに変更すると容量は激減します。基本的には紙媒体のデータは何でもスキャンしています。年賀状や古い写真も紙媒体から電子媒体に変えています。

電子媒体に変えるメリットは保存スペースだけではありません。ファイル名やディレクトリ構造を適切にすることで資料を探す手間を激減させることができます。全ての紙媒体の資料を電子化しているので、過去のことを日付で遡って探すことができます。

これは自分の生存した記録と同じです。捨てることなく電子化することで、その時の出来事を思い出すきっかけになり、昔のことが蘇ってきます。捨てるのではなく電子化で保存。これが良い手段と思います。手間はかかりますが、それ以上のメリットがある仕組みだと思います。

参考

[本ブログ内参照]
・ubuntu/LinuxMintのshellのdash、組込shell変数の利用でbashとの違い
[外部サイト参照]
・pdftotext - PDFからテキストを抽出
・pdftoppm - PDFの画像変換(ppm)
・画像から文字を瞬時に読み取る!Tesseractとpytesseractの驚異の力【Python】

コメント