PythonでPDFを読み込む(PyMuPDF, PyPDF2, PDFminer)

PythonでPDFを読み込む
スポンサーリンク
スポンサーリンク

業務効率化・自動化の事例として、PythonでPDFを読み込む方法を解説します。

Pythonでは外部ライブラリを使用することで、PDFを読み込んで様々な操作をする事が可能です。
操作できる例として、テキスト抽出、画像取得、目次取得、ページ毎に分割、複数ファイルを結合などがあります。

スポンサーリンク

PDF用ライブラリ一覧

PythonでPDFを操作するライブラリはPyMuPDF, PyPDF2, PDFminer などがあります。

各ライブラリの特徴をまとめると以下のようになります。

PDFライブラリ比較

日本語のテキストを抽出したい場合や、画像を抽出したい場合は PyMuPDF がおすすめです。
PyPDF2 では日本語に対応していないため文字化けしてしまいますし、PDFminer はコードが長くなってしまいます。(PyMuPDF 6行:PDFminer 17行)

ファイルの結合や分割などのファイル操作を行いたい場合は PyPDF2 の使用をおすすめします。

サンプルファイル

ここではサンプルファイルとして、統計局の『高等学校における「情報II」のためのデータサイエンス・データ解析入門』の第1章テキストを利用させていただきます。

ファイル名は sample.pdf としています。

PDFサンプルファイル

PyMuPDFで読み込む

PyMuPDFで読み込む方法です。
個人的におすすめのライブラリです。

ライブラリのインストール

ライブラリ :PyMuPDF(公式ドキュメント
インストール:必要
python -m pip install pymupdf openpyxl

PDFを読み込みテキストを抽出する

以下がサンプルプログラムです。

– 1 –

第 1 章
データサイエンス(機械学習のアルゴリズム)による
データ解析が社会にもたらす変化

はじめに(社会における変化)
社会における技術の進化とデータサイエンスの活用
人工知能(AI)、ロボティクスなどをはじめ、技術がめざましい進歩を遂げ、私たちの生活に大きな変化を与え
ています。

PyMuPDFでPDFを操作する方法は以下の記事を参照してください。
・関連記事:PythonでPDFのテキストを抽出する(PyMuPDF)
・関連記事:PythonでPDFの画像を抽出する(PyMuPDF)

PyPDF2で読み込む

PyPDF2でPDFを読み込む方法です。
このライブラリでは日本語のテキストは文字化けして抽出できませんが、結合や分割などのファイル操作は簡単にできます。

ライブラリのインストール

ライブラリ :PyPDF2(公式ドキュメント
インストール:必要 

python -m pip install PyPDF2

PDFを読み込みテキストを抽出する

以下がサンプルプログラムです。

結果は以下のように文字化けしてしまい、抽出できません。

– 1
– 1
(
)

AI

1
×AI

AI

/Ü 5G

PyPDF2でPDFを操作する方法は以下の記事を参照してください。
・関連記事:PythonでPDFファイルを結合する(PyPDF2)
・関連記事:PythonでPDFファイルを分割する(PyPDF2)
・関連記事:PythonでPDFのページサイズを取得(PyPDF2)

PDFminerで読み込む

PDFminerでPDFを読み込む方法です。
コードが長くなるため、個人的におすすめはしません。

ライブラリのインストール

ライブラリ :pdfminer.six(公式ドキュメント)
インストール:必要
python -m pip install pdfminer.six

PDFを読み込みテキストを抽出する

以下がサンプルプログラムです。
PDFの読み込みは標準関数openのバイナリモードで読み込みます。

出力結果です。

– 1 –

第 1 章
データサイエンス(機械学習のアルゴリズム)による
データ解析が社会にもたらす変化

はじめに(社会における変化)
社会における技術の進化とデータサイエンスの活用
人工知能(AI)、ロボティクスなどをはじめ、技術がめざましい進歩を遂げ、私たちの生活に大きな変化を与え
ています。


PythonでPDFを読み込む方法を解説しました。

PDFを読み込むライブラリを特徴に応じて使い分けて、自動化を上手に行いましょう。