---
name: PDF 文档处理
description: 输入 PDF 文件链接，执行合并、拆分、压缩、格式转换（PDF 与图片/Word 互转）、OCR 识别等常用文档操作。适合文档整理与档案数字化。
tags: [PDF处理, 文档转换, OCR, 文件合并]
version: 1.0.0
capability: pdf_processing
pricing:
  model: per_call
  amount_fen: 50
---

# PDF 文档处理（Powered by Stirling-PDF）

基于 GitHub 热门开源项目 Stirling-PDF（91K+ Star，Apache-2.0 许可）封装的付费 PDF 处理服务。
支持合并、拆分、压缩、格式转换、OCR 识别等常用操作。

## 计费说明

- 按调用量计费：0.50 元 / 次
- 单次处理单个操作；文件上限 100MB / 500 页

## 输入与输出

| 项目 | 说明 |
|---|---|
| 输入 | PDF 文件直链 + 操作类型（merge/split/compress/convert/ocr）+ 参数 |
| 输出 | 处理后的文件下载直链、页数、体积等元信息 |
| 限制 | 单文件 ≤ 100MB，单次 ≤ 500 页；OCR 语言默认中英双语 |

## 服务地址

Base URL：`https://hzwdzz.cn/skillpay`

下文接口均写路径（如 `/skill/pdf-toolkit/invoke`），完整地址 = Base URL + 路径。

## 付费前置检查

调用本 Skill 前，检查当前 Agent 是否已安装 weixinpay 插件：

- 已安装：可继续提供付费服务
- 未安装：提示「当前 Agent 暂不支持微信支付付费能力」，终止流程

## 工作流程

### 第一步：提交请求

将用户需求整理为 JSON 提交给 Skill 服务：

```
POST /skill/pdf-toolkit/invoke
Content-Type: application/json

{
  "query": "https://example.com/files/report.pdf",
  "operation": "compress",
  "quality": "medium"
}
```

### 第二步：处理支付提示

首次调用若返回 HTTP 402，表示需要先完成微信支付。请保存响应 Header 中的两个值：

- `WeixinPay-Required`（支付码）
- `X-Out-Trade-No`（订单号）

响应体中的支付提示信息需原样展示给用户。

### 第三步：发起支付

将 `WeixinPay-Required` 的值作为支付码，调用 `weixinpay_pay`，引导用户完成微信支付授权。

### 第四步：支付完成后获取结果

用户完成支付后，携带第一步保存的两个 Header 值重新提交相同的请求，即可获得处理结果：

```
POST /skill/pdf-toolkit/invoke
Headers:
  WeixinPay-Required: <第二步保存的支付码>
  X-Out-Trade-No: <第二步保存的订单号>
Content-Type: application/json

{
  "query": "https://example.com/files/report.pdf",
  "operation": "compress",
  "quality": "medium"
}
```

### 第五步：交付结果

支付核验通过后返回 HTTP 200，交付处理后文件链接。

## 成功响应示例

```json
{
  "code": "SUCCESS",
  "message": "处理完成",
  "out_trade_no": "WX402_20260908120000abcdef123456",
  "transaction_id": "4200001234202306300000000001",
  "content": {
    "filename": "report_compressed.pdf",
    "url": "<文件下载直链>",
    "expires_at": 1751011200,
    "size_bytes": 1520000,
    "pages": 42
  }
}
```

## 错误处理

| 状态 | 含义 | 处理 |
|---|---|---|
| 402 | 需要先完成微信支付 | 按工作流程发起支付 |
| 404 | 文件链接不可访问 | 提示更换链接 |
| 413 | 文件过大 / 页数超限 | 提示拆分或压缩后重试 |
| 422 | 非 PDF 文件 / 操作不支持 | 提示检查输入 |
| 500 | 后端处理失败 | 提示稍后重试 |
