当用户想对 PDF 文件进行任何操作时,使用此技能。这包括从 PDF 中读取或提取文本/表格、将多个 PDF 合并成一个、拆分 PDF、旋转页面、添加水印、创建新 PDF、填写 PDF 表单、加密/解密 PDF、提取图像,以及对扫描的 PD
技能说明anthropics/skills
当用户想对 PDF 文件进行任何操作时,使用此技能。这包括从 PDF 中读取或提取文本/表格、将多个 PDF 合并成一个、拆分 PDF、旋转页面、添加水印、创建新 PDF、填写 PDF 表单、加密/解密 PDF、提取图像,以及对扫描的 PDF 进行 OCR 使其可搜索。如果用户提到 .pdf 文件或要求生成一个,请使用此技能。
技能简介
pdf 技能是一个面向 PDF 文件处理的全能工具,可帮助用户完成读取提取、合并拆分、旋转水印、创建生成、表单填写、加密解密、图像提取以及扫描件 OCR 等操作。无论用户提到 .pdf 文件还是要求生成 PDF,都可以启用本技能。
使用场景
- 从 PDF 中提取文本、表格或图像
- 将多个 PDF 合并为一个,或按页拆分 PDF
- 旋转 PDF 页面、添加水印
- 创建新的 PDF 报告或文档
- 填写 PDF 表单、加密/解密 PDF、对扫描件进行 OCR
使用方法
本技能通过 Python 库与命令行工具组合实现。
安装依赖:
pip install pypdf pdfplumber reportlab pandas
# 命令行工具(按需安装)
# macOS: brew install poppler qpdf pdftk
# Ubuntu: sudo apt-get install poppler-utils qpdf pdftk
读取与提取文本(pypdf):
from pypdf import PdfReader
reader = PdfReader("document.pdf")
for page in reader.pages:
print(page.extract_text())
提取表格(pdfplumber):
import pdfplumber
with pdfplumber.open("document.pdf") as pdf:
for page in pdf.pages:
for table in page.extract_tables():
print(table)
合并 PDF(pypdf):
from pypdf import PdfWriter, PdfReader
writer = PdfWriter()
for f in ["doc1.pdf", "doc2.pdf"]:
for page in PdfReader(f).pages:
writer.add_page(page)
with open("merged.pdf", "wb") as out:
writer.write(out)
创建 PDF(reportlab):
from reportlab.pdfgen import canvas
c = canvas.Canvas("hello.pdf")
c.drawString(100, 700, "Hello World!")
c.save()
命令行示例:
# 提取文本(保留版式)
pdftotext -layout input.pdf output.txt
# 合并 PDF
qpdf --empty --pages file1.pdf file2.pdf -- merged.pdf
# 旋转第 1 页 90 度
qpdf input.pdf output.pdf --rotate=+90:1
注意事项
- 在 reportlab 中切勿使用 Unicode 上下标字符(如 ₀₁₂₃、⁰¹²³),内置字体不含这些字形,会渲染为黑色实心方块。请改用 Paragraph 的
<sub>和<super>标签。 - pdftk 可能未预装;qpdf、pdftotext 依赖 poppler-utils,需提前安装。