mcpField
P
pdf-tools

pdf-tools

github.com/oakoss文档处理20173 次安装10 周前更新
代码仓库

关于 pdf-tools

面向开发者的 PDF 工程技能,覆盖提取、生成、修改、表单处理和文档安全。它按任务梳理以 JavaScript 为主的库,以及适用于专门工作流的 Python 和命令行工具。

主要功能

  1. 01提取 PDF 文本和表格
  2. 02从 HTML 生成 PDF
  3. 03修改、合并和拆分 PDF
  4. 04填写交互式与静态表单
  5. 05加密、修复和涂黑 PDF
  6. 06支持签名与归档合规检查

适用场景

  1. 01从复杂 PDF 提取结构化数据
  2. 02从 HTML 或 React 生成 PDF
  3. 03填写表单并编辑现有文档
  4. 04为安全存储或归档准备 PDF

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/oakoss/agent-skills --skill pdf-tools

安装后在 Claude Code 中输入/pdf-tools确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
ai-extraction-patterns.md
batch-and-accessibility.md
form-filling.md
high-fidelity-generation.md
legacy-utilities.md

详细介绍

PDF 工具

涵盖提取、生成、修改、填写表单和安全保护的 PDF 全生命周期工程。优先采用 JavaScript 优先的解决方案(pdf-lib、unpdf、Puppeteer),并使用 Python/CLI 工具处理高级场景。

适用场景:从 PDF 中提取结构化数据、根据 HTML/React 生成像素级精准的 PDF、修改现有 PDF、填写表单(可填写或不可填写),或通过加密保护文档。

不适用场景:处理简单的文本文件、脱离 PDF 场景单独处理图像,或更适合用文字处理软件完成的任务。

快速参考

任务工具要点
根据 HTML 生成 PDFPuppeteer / Playwrightpage.pdf();使用 networkidle0(Puppeteer)或 networkidle(Playwright)
提取文本(轻量级)unpdf兼容边缘环境/无服务器环境
提取表格(AI)视觉模型 + Zod 架构支持多列和合并单元格
提取表格(非 AI)pdfplumber(Python)精确检测单元格边界
修改、合并、拆分pdf-lib(或 @pdfme/pdf-lib)在 JS 中进行字节级 PDF 操作
填写可填写表单pdf-lib(或 @pdfme/pdf-lib)写入前检查 AcroForm 字段
填写不可填写表单Python 标注脚本视觉分析 + 边界框标注
加密 PDFqpdfAES-256:qpdf --encrypt user owner 256 --
修复损坏的 PDFqpdfqpdf input.pdf --replace-input
快速提取文本(CLI)poppler-utilspdftotext -layout input.pdf -
合并数千个文件pypdf(Python)比无头浏览器更轻量
批量队列处理BullMQ + unpdf基于 Redis,支持重试、并发和进度跟踪
符合 PDF/A 归档规范ghostscript + verapdf使用 gs -dPDFA=2 转换;使用 verapdf 验证
带标签的 PDF(无障碍)Puppeteertagged: true 将 HTML 语义映射为 PDF 结构标签
数字签名@signpdf/*使用 P12 证书进行 PKCS#7 签名
PDF 比较unpdf + diff / pixelmatch对不同版本进行文本差异或像素级视觉差异比较
安全涂黑pymupdf (fitz)apply_redactions() 会移除内容字节,而不只是添加视觉覆盖层

常见错误

错误正确做法
使用画布绘图命令生成 PDF使用 Puppeteer/Playwright 和 HTML/CSS 模板
在边缘/无服务器环境中运行 Puppeteer边缘环境使用 unpdf;Puppeteer 需要完整的 Node.js
使用基础文本解析器提取复杂版面对多栏文本使用 AI 辅助 OCR 或 pdfplumber
在公共存储中存储未加密的含有个人身份信息的 PDF存储前通过 qpdf 应用 AES-256 加密
依赖 window.print() 在服务器端生成 PDF使用无头浏览器 API(page.pdf())以获得确定性输出
使用 pypdf 提取复杂版面对多栏或重叠文本使用 pdfplumber 或 AI OCR
在容器化环境中跳过字体嵌入使用 Puppeteer 嵌入 Google Fonts 或 WOFF2 文件
写入扁平化 PDF 表单字段写入前使用 pdf-lib 检查 AcroForm 字段
使用不再维护的 pdf-lib 处理加密 PDF使用添加了加密 PDF 支持的分支 @cantoo/pdf-lib

委派

  • 检查 PDF 结构并诊断提取问题:使用 Explore Agent 检查 AcroForm 字段、编码和元数据
  • 构建端到端文档处理管道:使用 Task Agent 实现提取、转换和生成工作流
  • 为新系统设计 PDF 架构:使用 Plan Agent 选择工具并规划提取、生成或修改策略

参考资料

  • AI 提取模式 -- 基于视觉的表格提取、递归摘要、多轮验证
  • 高保真生成 -- Puppeteer HTML 转 PDF、CSS 打印技巧、React 模板、浏览器池
  • 旧版工具 -- 用于批处理和取证任务的 pdfplumber、pypdf、qpdf、poppler-utils
  • 表单填写 -- 可填写字段提取、不可填写注释工作流、验证脚本
  • 批处理和无障碍 -- 基于队列的批处理、PDF/A 合规性、带标签的 PDF、数字签名、比较、涂黑

评论

支持 Markdown