SuperAPI AI 工具集

pdf

办公与效率

查看项目

更新于 10-15 11:42

技能介绍

用途

本技能用于处理 PDF 文件,涵盖读取、提取、合并、拆分、创建、旋转、加密、加水印、OCR 等常见操作。文档以 Python 库与命令行工具为核心,给出可直接使用的代码示例与命令。

主要能力

  • 读取 PDF 并统计页数(pypdf 的 PdfReader)。
  • 提取文本:pypdf 的 page.extract_text(),或 pdfplumber 的 page.extract_text()(可保留布局)。
  • 提取表格:pdfplumber 的 page.extract_tables(),可结合 pandas 将表格转为 DataFrame 并导出为 Excel。
  • 合并 PDF:pypdf 的 PdfWriter.add_page() 逐页合并,或用 qpdf、pdftk 命令行合并。
  • 拆分 PDF:pypdf 每页生成一个文件,或用 qpdf、pdftk 拆分。
  • 提取元数据:读取 reader.metadata 的标题、作者、主题、创建者等字段。
  • 旋转页面:page.rotate(90) 或 qpdf --rotate、pdftk rotate。
  • 创建 PDF:reportlab 的 Canvas 或 Platypus(SimpleDocTemplate、Paragraph、Spacer、PageBreak)。
  • OCR 扫描件:pdf2image 转图像后用 pytesseract 识别(需 pip install pytesseract pdf2image)。
  • 添加水印:将水印页 merge_page 到每页。
  • 提取图片:pdfimages -j。
  • 密码保护与解密:pypdf 的 writer.encrypt(),qpdf --decrypt。
  • 命令行文本提取:pdftotext(支持 -layout 保留布局、-f/-l 指定页码范围)。

使用方式

以 Python 库为例,安装 pypdf、pdfplumber、reportlab、pandas,按文档示例编写脚本即可执行合并、拆分、提取、创建等操作。命令行工具方面,poppler-utils 提供 pdftotext、pdfimages,qpdf、pdftk 提供合并、拆分、旋转、解密等命令。

适用场景

需要在程序中批量处理 PDF、从 PDF 提取文本或表格、将多份 PDF 合并或按页拆分、生成报告类 PDF、处理扫描件 OCR、为文档加水印或密码保护等。

限制与注意事项

  • 填写 PDF 表单需参考 FORMS.md;高级 pypdfium2 与 JavaScript 库(pdf-lib)需参考 REFERENCE.md。
  • 在 ReportLab 中不要使用 Unicode 下标/上标字符(如 ₀₁₂、⁰¹²),内置字体不含这些字形,会显示为黑块;应改用 <sub>、<super> 标签,canvas 文本则手动调整字号与位置。
  • OCR 需要额外安装 pytesseract 与 pdf2image。
  • 文档未提供具体收费、价格、平台或效果信息,这些暂未提供。