PythonでPDFからテキストを抽出するには?

Python

PythonでPDFに含まれるテキストを抽出するサンプルコードをご紹介します。

スポンサーリンク

PyPDF2のインストール

今回のサンプルではPythonでPDFを扱えるライブラリ「PyPDF2」を使っていきます。

GitHub - py-pdf/pypdf: A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files
A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files - GitHub - py...

pipコマンドでインストールできますので、あらかじめインストールしておきましょう。

pip install PyPDF2
スポンサーリンク

とりあえず抽出してみる

さっそくPyPDF2を使って、PDFファイルからテキストデータを取り出してみます。

ここでは、Pythonスクリプトと同じ階層のディレクトリ(フォルダ)にsample.pdfというPDFファイルがあるとします。

このsample.pdfの1ページ目に含まれるテキストを抽出してみましょう。以下のコードを実行します。

from PyPDF2 import PdfReader

# PDFファイルを読み込む
reader = PdfReader("a.pdf")
# 1ページ目を取得する
page = reader.pages[0]
# ページからテキストを抽出する
print(page.extract_text())

実行すると、以下のように出力されます。

Lorem Ipsum  
"Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit..."  
"There is no one who loves pain itself, who seeks after it and wants to have it, simply because it is pain..."  
What is Lorem Ipsum?  
Lorem Ipsum  is simply dummy text of the printing and typesetting industry. Lorem Ipsum has 
been the industry's standard dummy text ever since the 1500s, when an unknown printer took a 
...以下略

1ページ目の内容がきちんと出力されましたね。

ファイル全体のテキストを抽出するには?

上記のサンプルでは1ページ目に含まれるテキストのみ抽出しました。PyPDF2では、ページごとにテキストを抽出する必要があります。

PDFのすべてのページからテキストを抽出するには、以下のようなコードとなります。

from PyPDF2 import PdfReader

# PDFファイルを読み込む
reader = PdfReader("sample.pdf")
# 各ページからテキストを抽出する
for page in reader.pages:
    print(page.extract_text())

PDFファイルに含まれるすべてのページからテキストを抽出するには、各ページに対して、順番にテキストの抽出を行う必要があります。

上記のコードを実行すると、すべてのページのテキストを抽出することができます。

PythonでPDFに含まれるテキストを抽出するサンプルコードをご紹介しました。

PyPDF2を活用すると、仕事で必要なPDF処理をPythonで効率化することができます。ぜひお試しください。

コメント

タイトルとURLをコピーしました