Python の Pdfminer パッケージ

Manav Narula 2023年10月10日
Python の Pdfminer パッケージ

PDF ファイルは標準のポータブルドキュメントであり、最も使用されているドキュメント形式の 1つです。

Python でさまざまな種類のファイルを操作して読み取ることができます。PDF ファイルを操作するために利用できるいくつかのパッケージがあります。

pdfminer はそのようなパッケージの 1つです。PDF ファイルを操作し、そのようなファイルからテキストデータを読み取るためのさまざまな機能があります。

このパッケージの基本については、以下で説明します。

Python での pdfminer パッケージのインストール

pdfminer パッケージは、最近のバージョンの Python 3 をサポートしていません。Python 3 では pdfminer.six と呼ばれるこのパッケージのフォークを使用できます。

これは、コマンドプロンプトから次の pip コマンドを使用してインストールできます。

pip install pdfminer.six

Python での pdfminer パッケージの使用

extract_text() 関数を使用して、デバイスに保存されている PDF からテキストを抽出できます。extract_text() 関数を使用できます。関数内でファイルのパスを指定できます。

次の例を参照してください。

from pdfminer.high_level import extract_text

s = extract_text("sample.pdf")
print(s)

出力:

Sample PDF from device

同じ関数をさまざまな方法で使用できます。

open() 関数を使用して PDF ファイルを開き、ファイルオブジェクトを作成し、このファイルオブジェクトを使用してデータを読み取ることができます。このためには、ファイルを rb モードで開く必要があります。

例えば、

from pdfminer.high_level import extract_text

with open("sample.pdf", "rb") as f:
    s = extract_text(f)
print(s)

出力:

Sample PDF from device

この関数を使用して、Web からファイルを読み取り、そのコンテンツを抽出できます。

まず、requests.get() 関数で指定された URL を使用してファイルを読み取ります。その内容は、content() 関数を使用して取得できます。

次に、io.BytesIO() 関数を使用してこのファイルをメモリにロードし、extract_pdf() 関数を使用してそのテキストを抽出します。

以下の構文を確認してください。

import io
import requests

r = requests.get(url)
s = extract_text(io.BytesIO(response.content))
print(s)

pdfminer パッケージは Python 2.7 まで広く使用されていましたが、Python 3 との互換性の問題により人気を失いました。

ただし、Python で PDF ファイルをより高速に操作する方法を提供する新しいパッケージが登場しました。pyPDF2 は、そのような代替手段の 1つです。

著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

関連記事 - Python PDF