PythonでPDFを操作するためのライブラリはいくつか存在します。その中でも、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は、コードが長くなるため、個人的におすすめはしません。
# ライブラリ設定
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfpage import PDFPage
from pdfminer.layout import LAParams
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を操作するための基本的な方法です。詳細な操作方法や各ライブラリの特性については、公式ドキュメンテーションを参照してください.