mcpField
P
pdf

pdf

github.com/moizibnyousafドキュメント1.2k130 回インストール5 週間前に更新
リポジトリ

pdf について

Python ライブラリとコマンドラインツールによる PDF 処理のリファレンスガイドです。読み込み、結合、分割、テキストや表の抽出、PDF の作成を扱い、OCR にも簡単に触れています。

主な機能

  1. 01PDF の読み込みとページ数の確認
  2. 02PDF ファイルの結合・分割
  3. 03テキストと表の抽出
  4. 04reportlab による PDF 作成
  5. 05pytesseract を使う OCR の参考情報

活用シーン

  1. 01PDF 文書からテキストを抽出
  2. 02PDF ページから表を取得
  3. 03PDF ファイルを結合または分割
  4. 04Python で PDF を生成

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/moizibnyousaf/ai-agent-skills --skill pdf

インストール後、Claude Code で/pdfを入力して読み込まれたか確認します。

詳細

PDF 処理ガイド

クイックスタート

from pypdf import PdfReader, PdfWriter

# Read a PDF
reader = PdfReader("document.pdf")
print(f"Pages: {len(reader.pages)}")

# Extract text
text = ""
for page in reader.pages:
    text += page.extract_text()

Python ライブラリ

pypdf - 基本操作
PDF の結合
from pypdf import PdfWriter, PdfReader

writer = PdfWriter()
for pdf_file in ["doc1.pdf", "doc2.pdf", "doc3.pdf"]:
    reader = PdfReader(pdf_file)
    for page in reader.pages:
        writer.add_page(page)

with open("merged.pdf", "wb") as output:
    writer.write(output)
PDF の分割
reader = PdfReader("input.pdf")
for i, page in enumerate(reader.pages):
    writer = PdfWriter()
    writer.add_page(page)
    with open(f"page_{i+1}.pdf", "wb") as output:
        writer.write(output)
pdfplumber - テキストと表の抽出
表の抽出
import pdfplumber
import pandas as pd

with pdfplumber.open("document.pdf") as pdf:
    all_tables = []
    for page in pdf.pages:
        tables = page.extract_tables()
        for table in tables:
            if table:
                df = pd.DataFrame(table[1:], columns=table[0])
                all_tables.append(df)
reportlab - PDF の作成
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas

c = canvas.Canvas("hello.pdf", pagesize=letter)
width, height = letter
c.drawString(100, height - 100, "Hello World!")
c.save()

コマンドラインツール

# Extract text (poppler-utils)
pdftotext input.pdf output.txt

# Merge PDFs (qpdf)
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf

# Split pages
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf

クイックリファレンス

タスク最適なツールコマンド/コード
PDF の結合pypdfwriter.add_page(page)
PDF の分割pypdf1 ファイルにつき 1 ページ
テキストの抽出pdfplumberpage.extract_text()
表の抽出pdfplumberpage.extract_tables()
PDF の作成reportlabCanvas または Platypus
スキャンした PDF の OCRpytesseract最初に画像に変換

コメント