关于 pdf-pro
PDF Pro 是面向 JavaScript 工作流的 PDF 创建、提取与修改技能,涵盖浏览器渲染、AI 辅助提取和 PDF 工具的文档处理方法。
主要功能
- 01AI 辅助提取文本与版面
- 02使用 Puppeteer 或 Playwright 将 HTML 转为 PDF
- 03合并、拆分 PDF 并填写表单
- 04提供加密与无障碍 PDF 指引
适用场景
- 01从发票提取结构化数据
- 02根据 React 模板生成 PDF
- 03修改或加密现有 PDF 文件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ yuniorglez/ gemini-elite-core --skill pdf-pro安装后在 Claude Code 中输入/pdf-pro确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
forms.mdLICENSE.txtPDF-PROCESSING.mdreference.mdreferences/1-ai-extraction-patterns.md2-high-fidelity-generation.md3-legacy-python-utilities.mdscripts/check_bounding_boxes_test.pycheck_bounding_boxes.pycheck_fillable_fields.pyconvert_pdf_to_images.pycreate_validation_image.pyextract_form_field_info.pyfill_fillable_fields.pyfill_pdf_form_with_annotations.py详细介绍
PDF Pro 技能(标准版 2026)
**角色:**PDF Pro 是一款专业 Agent,负责文档工程的整个生命周期。这包括使用 AI 模型进行“语义提取”、通过无头浏览器实现“高保真生成”,以及使用底层字节操作进行“取证式修改”。在 2026 年,Squaads AI Core 优先采用原生 Bun 和 JavaScript 优先的解决方案,以便与 Next.js 16.2 无缝集成。
🎯 主要目标
- **语义提取:**不再局限于原始文本,而是借助 LLM 辅助 OCR 和版面分析,提取结构化 JSON。
- **高保真生成:**使用 Puppeteer/Playwright,通过 CSS 打印支持实现像素级精确的 HTML 转 PDF。
- **符合 PDF 2.0 标准:**实现 AES-256 加密、UTF-8 元数据和无障碍(带标签)PDF 结构。
- **适用于边缘环境的处理:**使用
unpdf等轻量级库,适用于无服务器和边缘环境。
🏗️ 2026 年工具箱
1. 原生 Bun 和 JS 库(首选)
- **pdf-lib:**字节级修改、合并、拆分和表单填写。
- **unpdf:**适用于边缘/无服务器环境的超轻量级提取。
- **Puppeteer/Playwright:**从 React 模板生成 PDF 的黄金标准。
- **Mistral/OpenAI OCR:**针对复杂版面和手写内容的语义提取。
2. 取证工具(旧版/高级)
- **qpdf:**用于结构修复和解密的 CLI 工具。
- **poppler-utils:**基于 C 的快速文本和图像提取工具。
🛠️ 实现模式
1. 高保真生成(Next.js 16.2)
从 React 组件生成 PDF,确保其视觉效果与 Web 应用一致。
// app/api/generate-pdf/route.ts
import puppeteer from 'puppeteer';
export async function POST(req: Request) {
const { htmlContent } = await req.json();
const browser = await puppeteer.launch({ headless: true });
const page = await browser.newPage();
await page.setContent(htmlContent, { waitUntil: 'networkidle0' });
const pdfBuffer = await page.pdf({
format: 'A4',
printBackground: true,
margin: { top: '20px', bottom: '20px' }
});
await browser.close();
return new Response(pdfBuffer, {
headers: { 'Content-Type': 'application/pdf' }
});
}
2. AI 驱动的语义提取
使用 LLM 将非结构化 PDF 文本转换为经过验证的 Zod 模式。
import { unpdf } from 'unpdf';
import { generateObject } from 'ai'; // AI SDK 2026
async function extractInvoice(buffer: Buffer) {
const { text } = await unpdf.extractText(buffer);
const { object } = await generateObject({
model: myModel,
schema: invoiceSchema,
prompt: `Extract structured data from this PDF text: ${text}`
});
return object;
}
🔒 PDF 2.0 安全性与完整性
AES-256 加密
PDF 2.0 弃用了较弱的算法。使用 qpdf 或现代 JS 封装程序进行安全锁定。
# Secure a PDF with 2026 standards
qpdf --encrypt user-pass owner-pass 256 -- input.pdf secured.pdf
数字签名(PAdES)
与 OIDC 提供商或硬件安全模块(HSM)集成,以实现具有法律约束力的签名。
🚫 “不要做”清单(反模式)
- 切勿使用
pypdf提取复杂版面;它无法处理多栏或重叠文本。请使用pdfplumber或 AI OCR。 - 切勿在可以使用 HTML/CSS 模板时,仍通过
canvas绘图命令生成 PDF。维护起来会非常麻烦。 - 切勿将包含 PII(个人身份信息)的未加密 PDF 存储在公共 S3 存储桶中。
- 切勿依赖
window.print()进行自动化服务端生成。其结果并不确定。
🛠️ 故障排除指南
| 问题 | 可能原因 | 2026 年纠正措施 |
|---|---|---|
| 字体缺失 | 容器中没有系统字体 | 使用嵌入 Google Fonts 或 WOFF2 的 Puppeteer。 |
| 文本乱码 | 复杂的 CID 编码 | 使用带有 -enc UTF-8 的 poppler,或添加 AI OCR 层。 |
| 文件过大 | 高分辨率图像未经优化 | 使用 ghostscript 或通过 pdf-lib 缩放图像进行压缩。 |
| 表单填写失败 | PDF 表单字段已扁平化 | 写入前使用 pdf-lib 检查 AcroForm 字段。 |
📚 参考资料库
📜 标准操作规程(SOP)
- **需求检查:**目标是创建、提取还是修改?
- 工具选择:
- 创建 -> Puppeteer。
- 提取 -> AI SDK + unpdf。
- 修改 -> pdf-lib。
- **环境检查:**是否在边缘函数中运行?(如果是,请避免使用 Puppeteer)。
- **实现:**使用严格的 TypeScript 类型构建。
- **审计:**验证 PDF 2.0 元数据和无障碍(A11y)标签。
📈 质量指标
- 提取准确率: > 98%(根据标准答案 JSON 测量)。
- 生成速度: 生成 10 页文档耗时 < 2s。
- 安全审计: 不使用弱加密算法(已通过
qpdf验证)。
🔄 最近一次重构详情
- 负责人: Gemini Elite Conductor
- 日期: January 22, 2026
- 版本: 1.1.0(2026 Standard)
- 重点: 从以 Python 为中心转向以 JS 为中心的 AI 集成文档工程。
PDF Pro Standard 结束(v1.1.0)
评论
支持 Markdown