pdf について
PDF の読み取り、作成、結合、分割を扱うスキルガイドです。コマンドラインと Python の方法に加え、スキャン文書や大きなファイルの処理も説明します。
主な機能
- 01テキストとメタデータの抽出
- 02Markdown・コード・HTML から PDF を作成
- 03文書の結合と分割
- 04スキャン文書や大容量 PDF の処理案内
活用シーン
- 01PDF から後続処理用のテキストを抽出
- 02Markdown や HTML を PDF に変換
- 03文書の結合や PDF ページの分割
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ shareai-lab/ learn-claude-code --skill pdfインストール後、Claude Code で/pdfを入力して読み込まれたか確認します。
詳細
PDF 処理スキル
PDF の操作に関する専門知識を身につけました。以下のワークフローに従ってください。
PDF の読み取り
オプション 1:テキストをすばやく抽出する(推奨)
# Using pdftotext (poppler-utils)
pdftotext input.pdf - # Output to stdout
pdftotext input.pdf output.txt # Output to file
# If pdftotext not available, try:
python3 -c "
import fitz # PyMuPDF
doc = fitz.open('input.pdf')
for page in doc:
print(page.get_text())
"
オプション 2:メタデータとともにページごとに読み取る
import fitz # pip install pymupdf
doc = fitz.open("input.pdf")
print(f"Pages: {len(doc)}")
print(f"Metadata: {doc.metadata}")
for i, page in enumerate(doc):
text = page.get_text()
print(f"--- Page {i+1} ---")
print(text)
PDF の作成
オプション 1:Markdown から作成する(推奨)
# Using pandoc
pandoc input.md -o output.pdf
# With custom styling
pandoc input.md -o output.pdf --pdf-engine=xelatex -V geometry:margin=1in
オプション 2:プログラムで作成する
from reportlab.lib.pagesizes import letter
from reportlab.pdfgen import canvas
c = canvas.Canvas("output.pdf", pagesize=letter)
c.drawString(100, 750, "Hello, PDF!")
c.save()
オプション 3:HTML から作成する
# Using wkhtmltopdf
wkhtmltopdf input.html output.pdf
# Or with Python
python3 -c "
import pdfkit
pdfkit.from_file('input.html', 'output.pdf')
"
PDF の結合
import fitz
result = fitz.open()
for pdf_path in ["file1.pdf", "file2.pdf", "file3.pdf"]:
doc = fitz.open(pdf_path)
result.insert_pdf(doc)
result.save("merged.pdf")
PDF の分割
import fitz
doc = fitz.open("input.pdf")
for i in range(len(doc)):
single = fitz.open()
single.insert_pdf(doc, from_page=i, to_page=i)
single.save(f"page_{i+1}.pdf")
主なライブラリ
| タスク | ライブラリ | インストール |
|---|---|---|
| 読み取り/書き込み/結合 | PyMuPDF | pip install pymupdf |
| ゼロから作成 | ReportLab | pip install reportlab |
| HTML から PDF へ変換 | pdfkit | pip install pdfkit + wkhtmltopdf |
| テキスト抽出 | pdftotext | brew install poppler / apt install poppler-utils |
ベストプラクティス
- 使用する前に、ツールがインストールされていることを必ず確認してください
- エンコーディングの問題に対処してください - PDF にはさまざまな文字エンコーディングが含まれている場合があります
- 大きな PDF の場合:メモリ不足を避けるため、ページごとに処理してください
- スキャンした PDF の OCR:テキスト抽出の結果が空の場合は、
pytesseractを使用してください
コメント
Markdown 対応