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 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