PDF 処理ガイド
Python ライブラリ
- pypdf: 結合 (
PdfWriter.add_page())、分割、回転、メタデータ、暗号化 (writer.encrypt())、透かし (page.merge_page()) - pdfplumber: テキスト抽出 (
page.extract_text())、テーブル抽出 (page.extract_tables()→ pandas) - reportlab: PDF 作成 (シンプルなものは Canvas、複数ページは Platypus/SimpleDocTemplate)
- pytesseract + pdf2image: スキャン PDF の OCR (
convert_from_path()→image_to_string())
CLI ツール
pdftotext(poppler): テキスト抽出、-layoutでレイアウトを保持qpdf: 結合 (qpdf --empty --pages)、分割、回転、復号pdftk: 結合、分割 (burst)、回転
クイックリファレンス
| タスク | 最適なツール | 主要 API |
|---|---|---|
| テキスト抽出 | pdfplumber | page.extract_text() |
| テーブル抽出 | pdfplumber | page.extract_tables() → DataFrame |
| 結合 | pypdf | PdfWriter().add_page() |
| 分割 | pypdf | reader.pages を反復処理 |
| 作成 | reportlab | SimpleDocTemplate / Canvas |
| OCR | pytesseract | convert_from_path() → image_to_string() |
| 透かし | pypdf | page.merge_page() |
| パスワード | pypdf | writer.encrypt() |
ユーザーリクエスト
$ARGUMENTS