SuperAPI AI 工具集

pdf-toolkit

办公与效率

查看项目

更新于 10-16 09:17

技能介绍

PDF Toolkit 是一个用于操作和读取 PDF 文件的技能,底层依赖多个开源 Python 库:pypdf(BSD 许可)负责页面操作,pdfplumber(MIT 许可)负责文本与表格提取,OCRmyPDF(MPL-2.0 许可)负责 OCR。

适用场景

  • 从 PDF 中提取文本或表格。
  • 将多个 PDF 合并为一个,或拆分 / 提取页面范围。
  • 旋转页面,或添加水印 / 图章。
  • 对扫描版(仅图片)PDF 进行 OCR,使其可搜索。

如果需要将 PDF 转换为干净的 Markdown 以便分析,建议优先使用 markitdown-converter 技能;本技能用于结构性的 PDF 操作。

安装

pip install pypdf pdfplumber

OCR(可选)还需要系统工具:

pip install ocrmypdf # 另需安装 Tesseract + Ghostscript

使用方式

技能自带一个命令行工具(scripts/pdf_tools.py),覆盖常见操作:

合并

python scripts/pdf_tools.py merge a.pdf b.pdf c.pdf -o combined.pdf

拆分为每页一个文件,或提取指定范围

python scripts/pdf_tools.py split in.pdf -o pages_dir/ python scripts/pdf_tools.py split in.pdf --ranges 1-3 8 10-12 -o excerpt.pdf

旋转(90/180/270)

python scripts/pdf_tools.py rotate in.pdf --deg 90 -o rotated.pdf

提取文本(输出到 stdout 或 -o 指定文件)

python scripts/pdf_tools.py text in.pdf -o out.txt

用单页图章 PDF 为每一页添加水印

python scripts/pdf_tools.py watermark in.pdf --stamp mark.pdf -o stamped.pdf

表格提取

表格提取需直接使用 pdfplumber,它按页暴露表格数据:

import pdfplumber with pdfplumber.open("report.pdf") as pdf: for page in pdf.pages: for table in page.extract_tables(): print(table) # 行列表

OCR 扫描版 PDF

ocrmypdf input_scanned.pdf output_searchable.pdf

该命令会添加可搜索的文本层(需要系统已安装 Tesseract + Ghostscript)。

注意事项与限制

  • pypdf 处理结构(页面、旋转、合并、叠加),但不会重新排版或重新渲染内容。
  • pdfplumber 读取内嵌的文本层;对于仅图片的 PDF,需先运行 OCR。
  • 加密 PDF 可能需要密码(PdfReader(path).decrypt(pw))。

致谢

本技能由 Rinu(l3ad3r1)与 Claude(Anthropic)协作创建。由 pypdf(BSD-3-Clause)、pdfplumber(MIT)和 OCRmyPDF(MPL-2.0)提供支持。底层能力的全部荣誉归这些项目的作者所有。