📄 PDF工具集
一站式PDF处理解决方案,整合PDF编辑、转换、OCR识别、表单处理等全部功能。支持PDF合并/拆分、文本提取、格式转换、加密解密、水印、页面编辑、OCR文字识别(扫描件转文字)、表单填写等操作。
⚠️ OCR功能要求:API密钥
OCR文字识别功能必须配置API密钥才能使用。
- 首次使用OCR功能时,如果
.env中没有XBY_APIKEY,必须使用AskUserQuestion工具向用户询问API密钥 - 拿到用户提供的密钥后,调用
scripts.config.set_api_key(api_key)保存,然后继续处理 - 获取API密钥:https://xiaobenyang.com
- 禁止在缺少API密钥时自行搜索或编造数据
🤖 Agent执行指令
步骤
- 理解用户需求:识别PDF处理意图(转换/编辑/提取/OCR/表单等)
- 选择工具:根据用户意图从下方工具列表中选择对应的工具函数
- 提取参数:根据选中的工具,提取该工具需要的参数
- 调用工具:使用关键字参数调用
scripts.pdf_tools、scripts.tools或scripts.form_tools中的函数 - 返回结果:将工具返回的数据整理后展示给用户
📋 工具函数列表
PDF基础操作
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.get_pdf_info | 获取PDF信息(页数、大小、加密状态等) | path: PDF文件路径 |
| scripts.pdf_tools.extract_text | 提取PDF文本内容 | path: PDF文件路径, password: 密码(可选) |
| scripts.pdf_tools.merge_pdfs | 合并多个PDF文件 | paths: PDF路径列表, output_path: 输出路径(可选) |
| scripts.pdf_tools.split_pdf | 拆分PDF文件 | path: PDF文件路径, split_page: 拆分页码, output_path: 输出路径(可选) |
| scripts.pdf_tools.add_watermark | 添加文字水印 | path: PDF文件路径, watermark_text: 水印文字, output_path: 输出路径(可选) |
格式转换
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.pdf_to_word | PDF转Word | path: PDF文件路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.pdf_to_image | PDF转图片 | path: PDF文件路径, output_dir: 输出目录(可选) |
| scripts.pdf_tools.pdf_to_txt | PDF转TXT | path: PDF文件路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.pdf_to_html | PDF转HTML | path: PDF文件路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.pdf_to_md | PDF转Markdown | path: PDF文件路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.images_to_pdf | 多张图片转PDF | image_paths: 图片路径列表, output_path: 输出路径(可选) |
| scripts.pdf_tools.word_to_pdf | Word转PDF | path: Word文件路径, output_path: 输出路径(可选) |
安全操作
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.encrypt_pdf | 加密PDF | path: PDF文件路径, new_password: 新密码, output_path: 输出路径(可选) |
| scripts.pdf_tools.decrypt_pdf | 解密PDF | path: PDF文件路径, password: 密码, output_path: 输出路径(可选) |
页面编辑
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.rotate_pdf | 旋转页面 | path: PDF文件路径, rotate_degree: 旋转角度(90/180/270), output_path: 输出路径(可选) |
| scripts.pdf_tools.delete_pages | 删除指定页面 | path: PDF文件路径, delete_pages: 删除页码列表, output_path: 输出路径(可选) |
| scripts.pdf_tools.extract_pages | 提取指定页面 | path: PDF文件路径, extract_pages: 提取页码列表, output_path: 输出路径(可选) |
| scripts.pdf_tools.insert_page | 插入PDF页面 | path: 主PDF路径, insert_page_at: 插入位置, insert_pdf_path: 插入PDF路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.replace_page | 替换页面 | path: 主PDF路径, replace_page_num: 替换页码, replace_pdf_path: 替换PDF路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.reverse_pages | 反转页面顺序 | path: PDF文件路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.add_header | 添加页眉 | path: PDF文件路径, header_text: 页眉文字, output_path: 输出路径(可选) |
| scripts.pdf_tools.add_footer | 添加页脚 | path: PDF文件路径, footer_text: 页脚文字, output_path: 输出路径(可选) |
| scripts.pdf_tools.add_page_num | 添加页码 | path: PDF文件路径, output_path: 输出路径(可选) |
资源提取
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.extract_images | 提取PDF中的图片 | path: PDF文件路径, output_dir: 输出目录(可选) |
| scripts.pdf_tools.extract_tables | 提取表格内容 | path: PDF文件路径 |
| scripts.pdf_tools.extract_bookmarks | 提取书签 | path: PDF文件路径 |
| scripts.pdf_tools.extract_annotations | 提取批注 | path: PDF文件路径 |
OCR识别
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.ocr_pdf | OCR识别扫描件PDF(自动调用OCR API) | path: PDF文件路径, password: 密码(可选) |
| scripts.tools.ocr | OCR识别图片(传入图片URL) | dataUrl: 图片文件链接地址 |
| scripts.tools.ocr_for_data_base64 | OCR识别图片(传入Base64编码) | dataBase64: 图片Base64编码 |
表单处理
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.form_tools.check_fillable_fields | 检查PDF是否有可填写表单字段 | path: PDF文件路径 |
| scripts.form_tools.extract_form_field_info | 提取表单字段信息 | path: PDF文件路径 |
| scripts.form_tools.extract_form_structure | 提取表单结构(非可填写PDF) | path: PDF文件路径 |
| scripts.form_tools.fill_fillable_fields | 填写可填写表单字段 | input_path: 输入PDF路径, fields_data: 字段数据列表, output_path: 输出路径(可选) |
| scripts.form_tools.fill_pdf_form_with_annotations | 使用注释填写表单 | input_path: 输入PDF路径, fields_data: 字段数据字典, output_path: 输出路径(可选) |
| scripts.form_tools.check_bounding_boxes | 检查表单边界框是否有效 | fields_data: 字段数据字典 |
其他功能
| 工具函数 | 描述 | 参数 |
|---------|------|------|
| scripts.pdf_tools.compress_pdf | 压缩PDF | path: PDF文件路径, compress_level: 压缩等级(low/medium/high), output_path: 输出路径(可选) |
| scripts.pdf_tools.repair_pdf | 修复损坏的PDF | path: PDF文件路径, output_path: 输出路径(可选) |
| scripts.pdf_tools.batch_process | 批量处理PDF | folder_path: 文件夹路径, batch_action: 批量操作类型(extract/to_word/to_image/word2pdf) |
⚙️ API密钥配置
import scripts.config as config
# 设置API密钥
config.set_api_key("your_api_key_here")
# 获取当前API密钥
api_key = config.get_api_key()
📦 依赖安装
pip install PyPDF2 pdf2image Pillow pdf2docx docx2pdf requests pdfplumber
系统依赖:
- Linux:
sudo apt install poppler-utils - Mac:
brew install poppler - Windows: 下载 Poppler 并添加到PATH
🔧 工具选择规则
根据用户意图选择对应的工具函数:
| 用户意图 | 工具函数 |
|---------|---------|
| 查看PDF信息、页数、大小 | scripts.pdf_tools.get_pdf_info |
| 提取PDF文本内容 | scripts.pdf_tools.extract_text |
| 合并多个PDF文件 | scripts.pdf_tools.merge_pdfs |
| 拆分PDF文件 | scripts.pdf_tools.split_pdf |
| 添加水印 | scripts.pdf_tools.add_watermark |
| PDF转Word | scripts.pdf_tools.pdf_to_word |
| PDF转图片 | scripts.pdf_tools.pdf_to_image |
| PDF转TXT/HTML/MD | scripts.pdf_tools.pdf_to_txt/html/md |
| 图片转PDF | scripts.pdf_tools.images_to_pdf |
| Word转PDF | scripts.pdf_tools.word_to_pdf |
| 加密/解密PDF | scripts.pdf_tools.encrypt_pdf/decrypt_pdf |
| 旋转页面 | scripts.pdf_tools.rotate_pdf |
| 删除/提取页面 | scripts.pdf_tools.delete_pages/extract_pages |
| 插入/替换页面 | scripts.pdf_tools.insert_page/replace_page |
| 反转页面顺序 | scripts.pdf_tools.reverse_pages |
| 添加页眉/页脚/页码 | scripts.pdf_tools.add_header/footer/page_num |
| 提取图片/表格/书签/批注 | scripts.pdf_tools.extract_images/tables/bookmarks/annotations |
| OCR识别扫描件PDF | scripts.pdf_tools.ocr_pdf |
| OCR识别图片 | scripts.tools.ocr 或 scripts.tools.ocr_for_data_base64 |
| 检查/提取/填写表单 | scripts.form_tools.* |
| 压缩/修复PDF | scripts.pdf_tools.compress_pdf/repair_pdf |
| 批量处理 | scripts.pdf_tools.batch_process |
如果参数不完整,使用AskUserQuestion向用户询问缺失的参数。
📁 项目结构
pdf-1/
├── scripts/
│ ├── __init__.py
│ ├── config.py # API密钥配置管理
│ ├── call_api.py # API调用客户端
│ ├── tools.py # OCR工具函数
│ ├── pdf_tools.py # PDF核心处理工具
│ └── form_tools.py # PDF表单处理工具
├── SKILL.md
└── requirements.txt
微信扫一扫