PythonでPDFを読み込む方法はいくつかありますが、ここでは主に3つのライブラリ、PyMuPDF
、PyPDF2
、PDFminer
について紹介します。
PyMuPDF
PyMuPDF
は、PDFを読み込んでテキストを抽出するためのライブラリです。日本語のテキスト抽出や画像抽出に対応しています。
# ライブラリ設定
import fitz
# PDFを読み込む
filename = 'sample.pdf'
doc = fitz.open(filename)
# 1ページずつテキストを抽出して出力
for page in range(len(doc)):
text = doc[page].get_text()
print(text)
PyPDF2
PyPDF2
は、PDFのファイル操作(結合や分割など)に便利なライブラリです。ただし、日本語のテキスト抽出には対応していません。
# ライブラリ設定
import PyPDF2
# PDFを読み込む
filename = 'sample.pdf'
reader = PyPDF2.PdfFileReader(filename)
# テキストを抽出する
for page in range(reader.numPages):
text = reader.getPage(page).extractText()
print(text)
PDFminer
PDFminer
も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
# PDFを読み込む
filename = 'sample.pdf'
pdf = open(filename, 'rb')
# テキスト抽出のための準備
outpdf = StringIO()
rmgr = PDFResourceManager()
lprms = LAParams()
device = TextConverter(rmgr, outpdf, laparams=lprms)
iprtr = PDFPageInterpreter(rmgr, device)
# ページを読み込む
for page in PDFPage.get_pages(pdf):
iprtr.process_page(page)
# テキストを抽出して出力
text = outpdf.getvalue()
print(text)
以上、PythonでPDFを読み込むための3つのライブラリについて紹介しました。それぞれのライブラリには特徴があり、用途に応じて適切なものを選ぶことが重要です。