mcpField
P
pdf

pdf

github.com/shareai-labドキュメント79.5k179 回インストール3 日前に更新
リポジトリ

pdf について

PDF の読み取り、作成、結合、分割を扱うスキルガイドです。コマンドラインと Python の方法に加え、スキャン文書や大きなファイルの処理も説明します。

主な機能

  1. 01テキストとメタデータの抽出
  2. 02Markdown・コード・HTML から PDF を作成
  3. 03文書の結合と分割
  4. 04スキャン文書や大容量 PDF の処理案内

活用シーン

  1. 01PDF から後続処理用のテキストを抽出
  2. 02Markdown や HTML を PDF に変換
  3. 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")

主なライブラリ

タスクライブラリインストール
読み取り/書き込み/結合PyMuPDFpip install pymupdf
ゼロから作成ReportLabpip install reportlab
HTML から PDF へ変換pdfkitpip install pdfkit + wkhtmltopdf
テキスト抽出pdftotextbrew install poppler / apt install poppler-utils

ベストプラクティス

  1. 使用する前に、ツールがインストールされていることを必ず確認してください
  2. エンコーディングの問題に対処してください - PDF にはさまざまな文字エンコーディングが含まれている場合があります
  3. 大きな PDF の場合:メモリ不足を避けるため、ページごとに処理してください
  4. スキャンした PDF の OCR:テキスト抽出の結果が空の場合は、pytesseract を使用してください

コメント