一键导入
Use when extracting, creating, merging, splitting, or analyzing PDFs, or when filling PDF forms programmatically.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when extracting, creating, merging, splitting, or analyzing PDFs, or when filling PDF forms programmatically.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Systematic analysis and reasoning workflows. Use when performing audits, investigation, requirements analysis, risk analysis, scenario/edge-case enumeration, or design analysis that demands evidence-based, comprehensive coverage.
Code quality and safety standards. Activates when editing or reviewing code. Use for quality priorities, safety checks, and code correctness verification.
Use when performing coding tasks (implement features, fix bugs, refactor code). Orchestrates language detection, mode switching (normal/autopilot/full-auto), quality enforcement, and verification.
Break a problem into atomic, testable subproblems. Use when facing complex tasks, unclear requirements, or planning implementation strategy.
Start structured feature implementation workflow. Use when implementing new features, adding functionality, or building complete user-facing capabilities.
Use when starting work that needs isolated branches or parallel feature development using git worktrees.
| name | |
| description | Use when extracting, creating, merging, splitting, or analyzing PDFs, or when filling PDF forms programmatically. |
| allowed-tools | ["shell","read_file","write_file"] |
| metadata | {"short-description":"PDF processing and form handling"} |
pypdf, pdfplumber, reportlab).pdftotext, qpdf, pdftk).forms.md first.This guide covers essential PDF operations. This skill includes reference.md and forms.md in the same directory for advanced features and form handling.
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()
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)
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)
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
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()
pdftotext input.pdf output.txt
pdftotext -layout input.pdf output.txt
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
qpdf input.pdf --pages . 1-5 -- pages1-5.pdf
qpdf input.pdf output.pdf --rotate=+90:1
| Task | Best Tool | Command/Code |
|---|---|---|
| Merge PDFs | pypdf | writer.add_page(page) |
| Split PDFs | pypdf | One page per file |
| Extract text | pdfplumber | page.extract_text() |
| Create PDFs | reportlab | Canvas or Platypus |
| Command line merge | qpdf | qpdf --empty --pages ... |
| Fill PDF forms | pypdf / pdf-lib | See forms.md |
reference.mdforms.mdTarget: ${ARGUMENTS}