SuperAPI AI 工具集

pdf

办公与效率

查看项目

更新于 10-15 11:42

技能介绍

PDF 处理技能概览

本技能用于在用户需要对 PDF 文件进行任何操作时提供处理指导,包括读取、提取文本与表格、合并、拆分、创建、旋转、加水印、加解密、OCR 识别等。主要基于 Python 库和命令行工具,进阶特性、JavaScript 库与详细示例见 REFERENCE.md;如需填写 PDF 表单,需阅读 FORMS.md 并按其说明操作。

主要能力

  • 基础读取:使用 pypdf 的 PdfReader 读取 PDF,获取页数、提取文本、读取标题/作者/主题/创建者等元数据,并支持页面旋转。
  • 合并与拆分:使用 PdfWriter 将多个 PDF 的页面依次写入生成合并文件;或逐页导出为单独文件。
  • 文本与表格提取:使用 pdfplumber 按布局提取文本,使用 extract_tables() 抽取表格,并可借助 pandas 将多页表格合并后导出为 Excel。
  • 创建 PDF:使用 reportlab 创建 PDF,既可用 canvas 直接绘制文本和线条,也可用 SimpleDocTemplate 与 Platypus 构建多页文档,支持标题、段落、间隔与分页。
  • 命令行处理:pdftotext 可按页提取文本并保留布局;qpdf 支持合并、拆分、旋转与移除密码;pdftk 支持合并、拆分与旋转;pdfimages 可导出 PDF 中的图片。
  • OCR:对扫描版 PDF,先用 pdf2image 将页面转为图片,再用 pytesseract 逐页识别文本。
  • 水印与加密:使用 pypdf 将水印页 merge_page 到每一页;使用 encrypt() 设置用户密码与所有者密码。

使用方式

文档以代码片段与命令示例呈现,可直接在 Python 环境或终端中按需调用。例如读取 PDF 并打印页数,遍历页面累加 extract_text() 得到全文;合并时循环 add_page 后写出;命令行合并使用 qpdf --empty --pages 等。所有示例均以具体库与命令形式给出。

适用场景

适合文档自动化处理、批量合并拆分、从报告或表格中提取结构化数据、生成定制 PDF 报告、处理扫描件 OCR、添加水印或密码等开发任务,也可作为 AI 智能体在执行 PDF 相关请求时的操作参考。

限制与注意事项

  • 下标与上标:在 ReportLab PDF 中不要使用 Unicode 下标/上标字符(₀₁₂₃₄₅₆₇₈₉、⁰¹²³⁴⁵⁶⁷⁸⁹),内置字体不包含这些字形,会渲染为黑色实心方块。应在 Paragraph 对象中使用 ReportLab 的 XML 标记,下标用 <sub>,上标用 <super>;对 canvas 绘制的文本,需手动调整字号与位置。
  • OCR 需要额外安装 pytesseract 与 pdf2image 等依赖。
  • pdftk 是否可用取决于环境。
  • 表单填写不在本文档主体中展开,需按 FORMS.md 执行。
  • 收费、价格、平台与最终效果等细节暂未提供。

文档末尾提供快速参考表,按任务列出推荐工具与对应命令/代码,并指向 REFERENCE.md 与 FORMS.md 以获取进阶用法和表单填写说明。