PDF 合并 API
BASE URLhttps://api-server.compdf.com/server/
❖ 功能说明
将多个 PDF 文件按上传顺序合并为单一 PDF,支持对每个源文件单独指定页面范围及打开密码。
❖ 调用方式
同步请求 (Sync) ✓
接口完成后直接返回结果文件。推荐在小文件、前端实时交互等需要即时反馈的场景下使用。
异步请求 (Async)
先返回任务受理结果,再通过 taskId 查询处理进度和结果。适用于大文件及批量执行任务。
预签名请求方式
通过预签名等安全机制上传处理,适用于高安全性要求及数据隐私合规场景。
▎调用流程
1上传文件
2调用接口(同步)
3获取结果地址
4下载文件
▎使用限制
| 下载有效期 | 24 小时 |
同步执行
❖ 请求参数 (Parameters)
在 Header 中发送的 x-api-key 认证凭证
Body Parameters multipart/form-data
未选择文件
待合并的 PDF 文件列表,至少 2 份。提交顺序即为合并顺序。
公共默认打开密码。若所有源 PDF 共用同一密码可填此字段;逐文件密码请使用 passwords[]。
接口错误提示语言。1=English,2=中文(默认)。
文件 1
文件 2
每行对应上方上传文件列表中的一份文件;如选择 N 份文件,请按顺序填写 N 行。
与 file[] 列表一一对应的页范围;每个文件单独一项。页码从 1 开始,可填写 "all" 或 "1-3,6"(多段以英文逗号分隔)。
文件 1
文件 2
每行对应上方上传文件列表中的一份文件;如选择 N 份文件,请按顺序填写 N 行。
与 file[] 列表一一对应的打开密码;不需要密码的位置用空字符串占位。
输出 PDF 文件名,未传默认为 merged.pdf。
❖ 响应属性说明
| 字段 | 类型 | 说明 |
|---|---|---|
code | String | 业务状态码 |
msg | String | 返回信息 |
data | Array | 响应数据 |
data[].fileKey | String | 文件在存储系统中的唯一 key。 |
data[].taskId | String | 任务 ID。创建任务后返回,后续启动转换或查询任务状态时使用。 |
data[].fileName | String | 源文件名称。预签名模式必填,用于生成对象存储上传地址。 |
data[].downFileName | String | 转换完成后的输出文件名。 |
data[].fileUrl | String | 源文件存储地址或对象存储 key。 |
data[].downloadUrl | String | 文件下载地址 |
data[].sourceType | String | 源文件类型或源功能分类,例如 pdf、docx、img、documentAI、idp。 |
data[].targetType | String | 目标文件类型或目标功能,例如 docx、pdf、split、ocr。 |
data[].fileSize | Integer | 源文件大小,单位为字节。 |
data[].convertSize | Integer | 转换结果文件大小,单位为字节。 |
data[].convertTime | Integer | 单个文件转换耗时,单位通常为毫秒。 |
data[].status | String | 文件处理状态。常见值包括 success、failed、processing 等。 |
data[].failureCode | String | 文件转换失败时的错误码。 |
data[].failureReason | String | 文件转换失败时的错误原因。 |
data[].fileParameter | String | 创建任务时提交的转档参数 JSON 字符串。 |
请求示例 (Request)
curl --request POST \
--url https://api-server.compdf.com/server/v2/process/pdf/merge \
--header 'x-api-key: YOUR API-KEY' \
--form [email protected] \
--form [email protected]响应示例 (Response)
200 OK
{
"code": "200",
"msg": "success",
"data": [
{
"fileKey": "<string>",
"taskId": "<string>",
"fileName": "<string>",
"downFileName": "<string>",
"fileUrl": "<string>",
"downloadUrl": "<string>",
"sourceType": "<string>",
"targetType": "<string>",
"fileSize": 0,
"convertSize": 0,
"convertTime": 0,
"status": "<string>",
"failureCode": "<string>",
"failureReason": "<string>",
"fileParameter": "<string>"
}
]
}