※このページではアフィリエイト広告を利用しています

【Python応用】PDFファイルから文字、画像を抽出する方法-まとめ-

Python

PDFファイルから文字抽出する方法として、「pypdf」「pdfminer.six」があります。

そこで、ここでは「pypdf」「pdfminer.six」の使用方法について解説しています。

この記事の対象

  • 「pypdf」の使用方法について知りたい方
  • 「pdfminer.six」の使用方法について知りたい方
  • PDFから簡単に文字抽出をしたい方
スポンサーリンク
スポンサーリンク

英文抽出 ⇒ pypdf

英文を抽出するなら「pypdf」で可能です。外部ライブラリのためpipでインストールしておく必要があります。以下を実行して下さい。

$ pip install pypdf

pypdf使用例

文字抽出

from pypdf import PdfReader

reader = PdfReader("arxiv_test.pdf")
for i in reader.pages:
    page = i
    print(page.extract_text())

上記のプログラムは任意のPDFファイルのすべてのページを読込んで出力しています。使用したPDFはarXivになります。使用したPDFはこちらです。

結果

指定ページだけ抽出

from pypdf import PdfReader

reader = PdfReader("arxiv_test.pdf")
page = reader.pages[0]
print(page.extract_text())

上記のプログラムは任意のPDFファイルの1ページ目を読込んで出力しています。ページを指定する場合は「.pages[]」を使用することで可能です。

結果は省略します。

画像抽出

from pypdf import PdfReader

reader = PdfReader("nikon.pdf")

page = reader.pages
page_num = len(page)
count = 0

for i in range(page_num):
    page = reader.pages[i]
    for image_file_object in page.images:
        with open(str(count) + image_file_object.name, "wb") as fp:
            fp.write(image_file_object.data)
            count += 1

上記のプログラムは任意のPDFファイルの全てのページの画像を抽出する内容となっています。使用しているPDFファイルはNikonのIR資料になります。使用したPDFはこちらです。

結果

日本語抽出 ⇒ pdfminer.six

pdfminer.six」は日本語の抽出ができるライブラリになります。こちらも外部ライブラリのため、以下の様にインストールしておく必要があります。

$ pip install pdfminer.six

pdfminer.six使用例

文字抽出

from pdfminer.high_level import extract_text

text = extract_text("nikon.pdf")
print(text)

上記のプログラムは任意の日本語が含まれているPDFファイルを読み込んで出力しています。

使用しているPDFファイルはNikonのIR資料になります。使用したPDFはこちらです。

結果

指定ページだけ抽出

from pdfminer.high_level import extract_text

text = extract_text(pdf_file="nikon.pdf",page_numbers=[1])
print(text)

指定ページだけを抽出した場合は引数に「page_numbers」を指定するだけです。

結果は省略します。

画像抽出

PDF内の画像を抽出することも可能のようで、コマンドラインから以下を実行するだけです。

C:\hoge\hoge\python.exe C:\hoge\hoge\pdf2txt.py C:\hoge\hoge\test.pdf --output-dir C:\hoge\hoge

「pythonのPath」「pdf2txt.pyのPath」「対象のPDFのPath」「–output-dir」「保存先のPath」をコマンドラインで実行するだけです。それぞれ半角スペースで区切ります。

結果としては、上手く抽出できない場合が多い印象です。

結果

以下はarXivのPDFを「src」というFolderに入れて保存先を「99-Test」というFolderにして実行した結果になります。参考までに使用したPDFはこちらです。

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