全能PDF合并工具技能
功能概述
本技能可以将多种格式的文件合并成一个PDF文档,支持:
- 图片格式:JPG, JPEG, PNG, BMP, GIF, TIFF, WEBP
- 文档格式:PDF, DOC, DOCX, TXT
- 表格格式:XLS, XLSX, CSV
- 演示格式:PPT, PPTX
触发指令
用户可以通过以下方式触发此技能:
基础用法:
- "把这些文件合并成一个PDF"
- "将选中的文件合并为PDF"
- "合并PDF"
高级用法:
- "把 [文件列表] 合并成PDF,保存到 [路径],命名为 [文件名]"
- "合并这些文件为PDF,按 [顺序] 排列"
- "将 [文件夹路径] 中的所有图片合并为一个PDF"
工作流程
1. 文件收集
- 接收用户提供的文件列表(支持拖拽上传或指定路径)
- 如果用户指定文件夹路径,自动扫描该文件夹下所有支持的文件
- 按照用户指定的顺序排列,或按文件名排序
2. 格式转换(按需)
| 文件类型 | 转换方式 |
|---|---|
| 图片 | 直接转换为PDF页面(保持原比例) |
| 直接导入,保持原格式 | |
| Word (DOC/DOCX) | 使用文档转换引擎转为PDF |
| Excel (XLS/XLSX) | 转换为PDF(每个工作表作为单独页面或连续排列) |
| PPT (PPT/PPTX) | 转换为PDF(每张幻灯片作为一页) |
| TXT/CSV | 转换为PDF(保持文本格式) |
3. PDF合并
- 将所有转换后的PDF页面按顺序合并为一个完整的PDF文件
- 可选功能:添加页码、页眉页脚、书签
4. 输出保存
- 默认保存路径:用户指定的位置,或当前工作目录
- 默认文件名:
合并文档_[时间戳].pdf(时间戳格式:YYYYMMDD_HHMMSS) - 用户可自定义输出路径和文件名
使用示例
示例1:批量合并图片
> 用户输入:"把这三张图片合并成一个PDF"
> - 文件:photo1.jpg, photo2.png, photo3.bmp
> - 输出:合并文档_20260721_143526.pdf
示例2:混合文件合并
> 用户输入:"将 report.docx、data.xlsx、slide.pptx 和 cover.pdf 合并成一个PDF,保存到 D:\Reports"
> - 自动转换各文件为PDF
> - 按指定顺序合并
> - 输出:D:\Reports\合并文档_20260721_143526.pdf
示例3:文件夹批量处理
> 用户输入:"把 C:\Documents\Project 文件夹里所有文件合并成一个PDF"
> - 扫描文件夹内所有支持的文件
> - 按文件名排序后合并
> - 输出:合并文档_20260721_143526.pdf
示例4:自定义输出
> 用户输入:"合并选中的5个文件为PDF,保存到桌面,命名为 项目报告.pdf"
> - 输出:C:\Users\Admin\Desktop\项目报告.pdf
参数配置
用户可通过指令指定以下参数:
| 参数 | 说明 | 示例 |
|---|---|---|
| 文件列表 | 要合并的文件(支持拖拽) | file1.pdf, file2.jpg |
| 文件夹路径 | 批量导入文件夹内所有文件 | C:\Documents |
| 输出路径 | 保存PDF的位置 | D:\PDF输出 |
| 输出文件名 | PDF文件名(不含扩展名) | 项目报告 |
| 排序方式 | 文件排列顺序 | 按名称/按类型/自定义 |
| 页面大小 | 输出PDF页面尺寸 | A4/A3/Letter/自适应 |
| 方向 | 页面方向 | 纵向/横向/自适应 |
错误处理
| 错误情况 | 处理方式 |
|---|---|
| 未选择任何文件 | 提示:"请至少选择一个文件或指定一个文件夹" |
| 文件格式不支持 | 跳过该文件并提示:"[文件名] 格式不支持,已跳过" |
| 文件损坏或无法读取 | 提示:"[文件名] 无法读取,请检查文件是否损坏" |
| 输出路径不存在 | 自动创建目标文件夹 |
| 磁盘空间不足 | 提示:"磁盘空间不足,请清理后重试" |
| 权限不足 | 提示:"没有写入权限,请检查目标路径" |
转换质量设置
| 文件类型 | 默认设置 | 可选优化 |
|---|---|---|
| 图片 | 保持原始分辨率 | 可设置压缩质量(1-100) |
| Word | 保持原有排版 | 可选择是否嵌入字体 |
| Excel | 每个工作表一页 | 可选择合并所有工作表到一页 |
| PPT | 每张幻灯片一页 | 可选择是否包含备注 |
高级功能
批量处理
- 支持同时处理多个文件,自动识别格式
- 支持通配符匹配(如
*.jpg)
智能识别
- 自动检测文件编码(TXT/CSV)
- 自动旋转图片方向(根据EXIF信息)
优化选项
- 压缩模式:减小输出文件大小
- 高质量模式:保持最高分辨率
- 标准模式:平衡质量和大小
跨端适配说明
| 平台 | 实现方式 |
|---|---|
| PC端 | 使用 Python + PyMuPDF + python-docx + openpyxl + python-pptx |
| 移动端 | 使用 Work Buddy 内置 PDF 合并引擎 |
| 云端 | 通过 API 调用在线转换服务 |
性能建议
- 建议单次合并文件数量:≤ 100 个
- 建议单个文件大小:≤ 50MB
- 超大文件合并时,会显示进度条提示
输出结果反馈
成功合并后,返回以下信息:
支付宝付费改造契约(PAYSKILL)
本技能为付费技能(PAYSKILL)。调用遵循支付宝 AI 生意画像契约,由平台调度层执行 probe → pay → complete → ack 流程:
- probe(探测):平台调用前先探测是否已持有本技能的支付宝有效订阅 / 付费凭证。已付费则直接放行。
- 402 Payment-Needed:未付费时,脚本向标准输出返回 HTTP 状态
402与Payment-Needed标记,提示用户通过支付宝完成付费(pay),平台据此唤起付费页。 - complete(扣费确认):用户在支付宝完成扣费后,平台下发
Payment-Proof(付费凭证)。 - ack(验签放行):平台携带
Payment-Proof重试本次调用;scripts/payment_gate.py验签该凭证,确认有效后放行主流程。
订阅持久化与幂等:
- 付费状态缓存在本地
.pay_cache/state.json,避免每次调用重复付费(订阅持久化)。 - 同一
Payment-Proof在 24h 幂等窗口内仅生效一次,避免重复扣费。
现金流改造后的调用套路:
用户调用 → 平台 probe →
未付费:下发 402 Payment-Needed → 支付宝 pay → complete → 下发 Payment-Proof
已付费/携带 Proof:脚本 ack 验签 → 放行主流程
> 本契约由 SkillHUB 平台调度层解析,脚本本地仅处理 402 / 验签 / 持久化 三环节;付费本体交给支付宝。
支付宝 AI 按量付费(Machine Pay / A2M)改造说明
本 Skill 已按支付宝官方 A2M 协议改造为 Pay Skill,付费闸口位于 scripts/payment_gate.py,统一调用云端计费服务 https://pay.pembroli.cn/api/resource。
付费流程
- 未付费调用时,服务端返回 HTTP 402 +
Payment-Needed头,携带金额、商户、订单号及 RSA2 签名。 - 买家侧
payment_gate.py收到 402 后引导用户完成支付,平台回传Payment-Proof。 - 客户端携带
Payment-Proof重试资源端点。
验付调用
服务端收到 Payment-Proof 后,调用支付宝验付接口(alipay.aipay.agent.payment.verify)核验凭证有效性(trade_no、out_trade_no、active 状态),验证失败返回 400,验证通过才进入资源发放。
履约确认
资源发放成功后,服务端异步调用履约确认接口(alipay.aipay.agent.fulfillment.confirm,trade_no)回执,标记本笔订单已履约;并按 out_trade_no 做幂等,重复请求直接返回已缓存结果,杜绝重复收费。
幂等与缓存
买家侧按 slug 本地缓存 Payment-Proof(24h TTL),有效期内免重复支付;服务端按订单号幂等,保证同一笔订单只履约一次。