PDFファイルからテキストを抽出するためのライブラリとして、pdfminerがあります。pdfminerはPythonで書かれたPDF解析ライブラリで、PDFファイルからテキストや画像などを抽出できます。pdfminerには、pdfminer.sixというバージョンがありますが、ここではpdfminer.sixを使ってPDFファイルからテキストを抽出する方法を説明します。

インストール方法

まずは、pdfminer.sixをインストールします。pipコマンドを使用して、次のようにインストールできます。

pip install pdfminer.six

PDFファイルからテキストを抽出する方法

pdfminer.sixを使用して、PDFファイルからテキストを抽出するには、次のようにします。

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from io import StringIO

def pdf_to_text(pdf_file_path):
    # PDFファイルを開く
    with open(pdf_file_path, 'rb') as fp:
        # PDFResourceManagerオブジェクトを作成
        rsrcmgr = PDFResourceManager()
        # StringIOオブジェクトを作成
        output_string = StringIO()
        # TextConverterオブジェクトを作成し、PDFPageInterpreterオブジェクトに渡す
        device = TextConverter(rsrcmgr, output_string, laparams=LAParams())
        interpreter = PDFPageInterpreter(rsrcmgr, device)
        # PDFPageオブジェクトを読み込み、PDFPageInterpreterオブジェクトに処理させる
        for page in PDFPage.get_pages(fp):
            interpreter.process_page(page)
        # 抽出したテキストを取得
        text = output_string.getvalue()
        # StringIOオブジェクトを閉じる
        output_string.close()
        # TextConverterオブジェクトを閉じる
        device.close()
        # 抽出したテキストを返す
        return text

上記の関数pdf_to_textは、PDFファイルのパスを引数に取り、PDFファイルから抽出したテキストを返します。この関数を使用するには、次のようにします。

text = pdf_to_text('sample.pdf')
print(text)

上記のコードを実行すると、PDFファイルから抽出したテキストが表示されます。

まとめ

pdfminer.sixを使用して、PythonでPDFファイルからテキストを抽出する方法を説明しました。pdfminer.sixは、PDFファイルからテキストや画像などを抽出する際に便利なライブラリです。