SuperAPI AI 工具集

pdf

办公与效率

查看项目

更新于 10-16 05:23

技能介绍

用途

该技能面向所有与 PDF 文件相关的处理需求,包括读取或提取 PDF 中的文本与表格、合并或拆分多个 PDF、旋转页面、创建新 PDF、添加水印、加密、以及对扫描版 PDF 进行 OCR 识别。文档以 Python 库和命令行工具为核心,给出可直接运行的代码片段与命令。

主要能力

Python 库

  • pypdf:基础操作,包括读取 PDF、提取文本、合并 PDF、拆分 PDF、提取元数据(标题、作者、主题、创建者)、旋转页面、添加水印、设置密码保护。
  • pdfplumber:文本与表格提取,支持按布局提取文本、提取表格,并可结合 pandas 将表格导出为 Excel。
  • reportlab:创建 PDF,支持 Canvas 基础绘制(文本、线条)以及 Platypus 多页文档(标题、段落、分页)。文档特别提示:在 ReportLab 中不要使用 Unicode 上下标字符(如 ₀₁₂、⁰¹²),因为内置字体不含这些字形,会渲染为黑色方块;应改用 <sub> 和 <super> XML 标签,或在 Canvas 中手动调整字号与位置。

命令行工具

  • pdftotext(poppler-utils):提取文本,支持保留布局(-layout)和指定页码范围(-f、-l)。
  • qpdf:合并、拆分、旋转页面、移除密码。
  • pdftk(如可用):合并、拆分(burst)、旋转。
  • pdfimages(poppler-utils):提取 PDF 中的图片。

常见任务

  • 从扫描版 PDF 提取文本:需安装 pytesseract 与 pdf2image,先将 PDF 转为图片,再逐页 OCR。
  • 添加水印:使用 pypdf 将水印页合并到每一页。
  • 提取图片:使用 pdfimages -j 输出为 JPG。
  • 密码保护:使用 pypdf 的 encrypt 方法设置用户密码与所有者密码。

使用方式

文档提供快速开始示例:使用 pypdf 读取 PDF 并打印页数、遍历页面提取文本。随后按库和工具分类给出具体代码与命令。对于进阶功能(如 pypdfium2、JavaScript 库 pdf-lib)以及表单填写,文档指向 reference.md 和 forms.md,需按其中说明操作。

适用场景

  • 批量合并、拆分、旋转 PDF 文件。
  • 从 PDF 中抽取文本或表格并导出为结构化数据(如 Excel)。
  • 生成报告类 PDF(多页、带标题与段落)。
  • 对扫描件做 OCR 文字识别。
  • 为 PDF 添加水印或设置密码。
  • 提取 PDF 内嵌图片。

限制

  • 扫描版 PDF 的文本提取依赖 OCR,需额外安装 pytesseract 与 pdf2image。
  • ReportLab 内置字体不支持 Unicode 上下标字符,需改用 XML 标签或手动排版。
  • 表单填写需参考 forms.md,文档未在此处展开具体步骤。
  • 进阶功能与 JavaScript 库用法需查阅 reference.md,本文档未提供完整细节。