PDF处理专家Skill PDFProcessingPro

PDF处理专家是一个生产就绪的PDF处理工具包,提供预构建脚本、全面的错误处理和支持复杂工作流,适用于表单处理、表格提取、OCR等场景,关键词包括PDF处理、表单分析、表格提取、OCR、批量操作、自动化工作流。

后端开发 0 次安装 0 次浏览 更新于 3/21/2026

name: PDF Processing Pro description: 生产就绪的PDF处理,支持表单、表格、OCR、验证和批量操作。适用于生产环境中的复杂PDF工作流、处理大量PDF或需要强大的错误处理和验证。

PDF Processing Pro

生产就绪的PDF处理工具包,提供预构建脚本、全面的错误处理和支持复杂工作流。

快速开始

从PDF提取文本

import pdfplumber

with pdfplumber.open("document.pdf") as pdf:
    text = pdf.pages[0].extract_text()
    print(text)

分析PDF表单(使用包含的脚本)

python scripts/analyze_form.py input.pdf --output fields.json
# 返回:包含所有表单字段、类型和位置的JSON

填充PDF表单并进行验证

python scripts/fill_form.py input.pdf data.json output.pdf
# 在填充前验证所有字段,包括错误报告

从PDF提取表格

python scripts/extract_tables.py report.pdf --output tables.csv
# 提取所有表格,自动检测列

功能

✅ 生产就绪的脚本

所有脚本包括:

  • 错误处理:优雅失败,提供详细错误信息
  • 验证:输入验证和类型检查
  • 日志记录:可配置日志记录,带时间戳
  • 类型提示:完整的类型注释,支持IDE
  • CLI界面:所有脚本支持 --help 标志
  • 退出代码:正确的退出代码,便于自动化

✅ 全面工作流

  • PDF表单:完整的表单处理管道
  • 表格提取:高级表格检测和提取
  • OCR处理:扫描PDF文本提取
  • 批量操作:高效处理多个PDF
  • 验证:预处理和后处理验证

高级主题

PDF表单处理

用于完整表单工作流,包括:

  • 字段分析和检测
  • 动态表单填充
  • 验证规则
  • 多页表单
  • 复选框和单选按钮处理

参见 FORMS.md

表格提取

用于复杂表格提取:

  • 多页表格
  • 合并单元格
  • 嵌套表格
  • 自定义表格检测
  • 导出到CSV/Excel

参见 TABLES.md

OCR处理

用于扫描PDF和基于图像的文档:

  • Tesseract集成
  • 语言支持
  • 图像预处理
  • 置信度评分
  • 批量OCR

参见 OCR.md

包含的脚本

表单处理

analyze_form.py - 提取表单字段信息

python scripts/analyze_form.py input.pdf [--output fields.json] [--verbose]

fill_form.py - 用数据填充PDF表单

python scripts/fill_form.py input.pdf data.json output.pdf [--validate]

validate_form.py - 填充前验证表单数据

python scripts/validate_form.py data.json schema.json

表格提取

extract_tables.py - 提取表格到CSV/Excel

python scripts/extract_tables.py input.pdf [--output tables.csv] [--format csv|excel]

文本提取

extract_text.py - 提取文本,保留格式

python scripts/extract_text.py input.pdf [--output text.txt] [--preserve-formatting]

工具

merge_pdfs.py - 合并多个PDF

python scripts/merge_pdfs.py file1.pdf file2.pdf file3.pdf --output merged.pdf

split_pdf.py - 将PDF拆分为单独页面

python scripts/split_pdf.py input.pdf --output-dir pages/

validate_pdf.py - 验证PDF完整性

python scripts/validate_pdf.py input.pdf

常见工作流

工作流1:处理表单提交

# 1. 分析表单结构
python scripts/analyze_form.py template.pdf --output schema.json

# 2. 验证提交数据
python scripts/validate_form.py submission.json schema.json

# 3. 填充表单
python scripts/fill_form.py template.pdf submission.json completed.pdf

# 4. 验证输出
python scripts/validate_pdf.py completed.pdf

工作流2:从报告提取数据

# 1. 提取表格
python scripts/extract_tables.py monthly_report.pdf --output data.csv

# 2. 提取文本用于分析
python scripts/extract_text.py monthly_report.pdf --output report.txt

工作流3:批量处理

import glob
from pathlib import Path
import subprocess

# 处理目录中的所有PDF
for pdf_file in glob.glob("invoices/*.pdf"):
    output_file = Path("processed") / Path(pdf_file).name

    result = subprocess.run([
        "python", "scripts/extract_text.py",
        pdf_file,
        "--output", str(output_file)
    ], capture_output=True)

    if result.returncode == 0:
        print(f"✓ 已处理: {pdf_file}")
    else:
        print(f"✗ 失败: {pdf_file} - {result.stderr}")

错误处理

所有脚本遵循一致错误模式:

# 退出代码
# 0 - 成功
# 1 - 文件未找到
# 2 - 无效输入
# 3 - 处理错误
# 4 - 验证错误

# 自动化中使用示例
result = subprocess.run(["python", "scripts/fill_form.py", ...])

if result.returncode == 0:
    print("成功")
elif result.returncode == 4:
    print("验证失败 - 检查输入数据")
else:
    print(f"发生错误: {result.returncode}")

依赖项

所有脚本需要:

pip install pdfplumber pypdf pillow pytesseract pandas

OCR可选:

# 安装tesseract-ocr系统包
# macOS: brew install tesseract
# Ubuntu: apt-get install tesseract-ocr
# Windows: 从GitHub发布版下载

性能提示

  • 使用批量处理 处理多个PDF
  • 启用多进程 使用 --parallel 标志(在支持的地方)
  • 缓存提取数据 避免重复处理
  • 尽早验证输入 快速失败
  • 使用流式处理 对于大PDF(>50MB)

最佳实践

  1. 始终在处理前验证输入
  2. 在自定义脚本中使用try-except
  3. 记录所有操作 便于调试
  4. 使用样本PDF测试 在生产前
  5. 为长时间操作设置超时
  6. 在自动化中检查退出代码
  7. 修改前备份原件

故障排除

常见问题

“模块未找到”错误

pip install -r requirements.txt

Tesseract未找到

# 安装tesseract系统包(见依赖项)

大PDF内存错误

# 逐页处理,而不是加载整个PDF
with pdfplumber.open("large.pdf") as pdf:
    for page in pdf.pages:
        text = page.extract_text()
        # 立即处理页面

权限错误

chmod +x scripts/*.py

获取帮助

所有脚本支持 --help

python scripts/analyze_form.py --help
python scripts/extract_tables.py --help

特定主题的详细文档,参见: