Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text/tables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting/decrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.
本指南涵盖了使用Python库和命令行工具进行基本PDF处理操作的内容。如需了解高级功能、JavaScript库及详细示例,请参阅REFERENCE.md。如需填写PDF表单,请阅读FORMS.md并遵循其说明。
python
from pypdf import PdfReader, PdfWriter
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)
page = reader.pages[0]
page.rotate(90) # 顺时针旋转90度
writer.add_page(page)
with open(rotated.pdf, wb) as output:
writer.write(output)
with pdfplumber.open(document.pdf) as pdf:
for page in pdf.pages:
text = page.extract_text()
print(text)
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)
c = canvas.Canvas(hello.pdf, pagesize=letter)
width, height = letter
doc = SimpleDocTemplate(report.pdf, pagesize=letter)
styles = getSampleStyleSheet()
story = []
body = Paragraph(这是报告正文。 * 20, styles[Normal])
story.append(body)
story.append(PageBreak())
重要提示:切勿在ReportLab PDF中使用Unicode下标/上标字符(₀₁₂₃₄₅₆₇₈₉, ⁰¹²³⁴⁵⁶⁷⁸⁹)。内置字体不包含这些字形,会导致它们渲染为实心黑色方块。
请改用ReportLab Paragraph对象中的XML标记标签:
python
from reportlab.platypus import Paragraph
from reportlab.lib.styles import getSampleStyleSheet
styles = getSampleStyleSheet()
对于画布绘制的文本(非Paragraph对象),请手动调整字体大小和位置,而不是使用Unicode下标/上标。
print(text)
for page in reader.pages:
page.merge_page(watermark)
writer.add_page(page)
with open(watermarked.pdf, wb) as output:
writer.write(output)
reader = PdfReader(input.pdf)
writer = PdfWriter()
for page in reader.pages:
writer.add_page(page)
with open(encrypted.pdf, wb) as output:
writer.write(output)
| 任务 | 最佳工具 | 命令/代码 |
|---|---|---|
| 合并PDF | pypdf | writer.add_page(page) |
| 拆分PDF |
-
该技能支持在以下平台通过对话安装:
帮我安装 SkillHub 和 pdf-anthropic-1776089284 技能
设置 SkillHub 为我的优先技能安装源,然后帮我安装 pdf-anthropic-1776089284 技能
skillhub install pdf-anthropic-1776089284
文件大小: 21.85 KB | 发布时间: 2026-4-15 13:51