pdf

当用户想对 PDF 文件进行任何操作时,使用此技能。这包括从 PDF 中读取或提取文本/表格、将多个 PDF 合并成一个、拆分 PDF、旋转页面、添加水印、创建新 PDF、填写 PDF 表单、加密/解密 PDF、提取图像,以及对扫描的 PD

提供方:anthropics/skills调用次数:4.9k收藏:256更新:2026/08/28

技能说明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,需提前安装。