Back to skills
extension
Category: Development & EngineeringNo API key required

PDF工具集

一站式PDF处理解决方案,整合PDF编辑、转换、OCR识别、表单处理等全部功能。支持PDF合并/拆分、文本提取、格式转换、加密解密、水印、页面编辑、OCR文字识别(扫描件转文字)、表单填写等操作。

personAuthor: mcpdevhubModelScope

📄 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执行指令

步骤

  1. 理解用户需求:识别PDF处理意图(转换/编辑/提取/OCR/表单等)
  2. 选择工具:根据用户意图从下方工具列表中选择对应的工具函数
  3. 提取参数:根据选中的工具,提取该工具需要的参数
  4. 调用工具:使用关键字参数调用 scripts.pdf_toolsscripts.toolsscripts.form_tools 中的函数
  5. 返回结果:将工具返回的数据整理后展示给用户

📋 工具函数列表

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.ocrscripts.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