Pythonを使えば、PDFファイルから簡単にテキストを抽出することができます。この記事では、2025年最新の情報をもとに、「PyPDF2」と「pdfplumber」という2つのライブラリを使ったPDFテキスト抽出方法を解説します。
この記事でわかること
- PDFからテキストを抽出する方法(PyPDF2とpdfplumber)
- 用途に応じた使い分けのポイント
- サンプルコード付きで初心者でも安心
1. PyPDF2を使ったテキスト抽出
PyPDF2は、軽量で手軽に使えるPDF操作ライブラリです。ページ単位でテキストを抽出できますが、レイアウトが崩れることがあります。
インストール
pip install PyPDF2
サンプルコード
from PyPDF2 import PdfReader
reader = PdfReader("sample.pdf")
for i, page in enumerate(reader.pages):
text = page.extract_text()
print(f"--- Page {i+1} ---")
print(text)
簡単に全ページのテキストを取得できます。ただし、表やレイアウトが複雑なPDFには不向きです。
2. pdfplumberを使ったテキスト抽出
pdfplumberは、PyPDF2よりも高精度で、表やレイアウトも保持しながらテキストを抽出できます。
インストール
pip install pdfplumber
サンプルコード
import pdfplumber
with pdfplumber.open("sample.pdf") as pdf:
for i, page in enumerate(pdf.pages):
text = page.extract_text()
print(f"--- Page {i+1} ---")
print(text)
表が含まれるPDFでは、pdfplumberの方が見やすくテキストを取得できます。
3. PyPDF2とpdfplumberの違い・使い分け
特徴 | PyPDF2 | pdfplumber |
---|---|---|
インストールサイズ | 軽量 | やや重め |
レイアウト保持 | 弱い | 強い(表も可) |
テキスト抽出精度 | そこそこ | 高精度 |
おすすめ用途 | 単純な文章の抽出 | 表やレイアウトが必要なPDF |
4. 注意点と補足
- PDFによってはテキストが埋め込まれておらず、抽出できないことがあります
- 日本語PDFの場合、フォントやエンコードの影響で文字化けすることがあります
- より高度な処理にはOCR(例:Tesseract)との併用が必要
5. まとめ
Pythonを使えば、PyPDF2やpdfplumberを用いてPDFから手軽にテキストを抽出できます。用途によってライブラリを使い分けることで、より効率的なPDF処理が可能です。ぜひ活用してみてください!