【2025年最新版】PythonでPDFを読み取ってテキスト抽出する方法(PyPDF2・pdfplumber解説付き)

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の違い・使い分け

特徴PyPDF2pdfplumber
インストールサイズ軽量やや重め
レイアウト保持弱い強い(表も可)
テキスト抽出精度そこそこ高精度
おすすめ用途単純な文章の抽出表やレイアウトが必要なPDF

4. 注意点と補足

  • PDFによってはテキストが埋め込まれておらず、抽出できないことがあります
  • 日本語PDFの場合、フォントやエンコードの影響で文字化けすることがあります
  • より高度な処理にはOCR(例:Tesseract)との併用が必要

5. まとめ

Pythonを使えば、PyPDF2やpdfplumberを用いてPDFから手軽にテキストを抽出できます。用途によってライブラリを使い分けることで、より効率的なPDF処理が可能です。ぜひ活用してみてください!

タイトルとURLをコピーしました