PDF 加密 API
BASE URLhttps://api-server.compdf.com/server/
❖ 功能说明
为单个 PDF 设置用户密码、所有者密码和权限控制。
❖ 调用方式
同步请求 (Sync) ✓
接口完成后直接返回结果文件。推荐在小文件、前端实时交互等需要即时反馈的场景下使用。
异步请求 (Async)
先返回任务受理结果,再通过 taskId 查询处理进度和结果。适用于大文件及批量执行任务。
预签名请求方式
通过预签名等安全机制上传处理,适用于高安全性要求及数据隐私合规场景。
▎调用流程
1上传文件
2调用接口(同步)
3获取结果地址
4下载文件
▎使用限制
| 下载有效期 | 24 小时 |
PDF 加密(同步)
❖ 请求参数 (Parameters)
在 Header 中发送的 x-api-key 认证凭证
Body Parameters multipart/form-data
未选择文件
上传文件
文件密码(如果 PDF 有密码保护)
接口错误提示语言(1=English,2=中文)
用户密码,即加密后打开 PDF 时需要输入的密码。userPassword 和 ownerPassword 建议至少填写一个。
所有者密码,用于权限控制和后续解除限制,可控制打印、复制、编辑、批注、表单填写等权限。建议与 userPassword 使用不同值。
加密算法。可选值:rc4、aes128、aes256。默认值:rc4。
是否允许打印。填写 true 或 false。默认值:false。
是否允许复制 PDF 内容。填写 true 或 false。默认值:false。
是否允许修改文档内容。填写 true 或 false。默认值:false。
是否允许页面装配,例如插入、删除、旋转或重新排序页面。填写 true 或 false。默认值:false。
是否允许添加或修改批注。填写 true 或 false。默认值:false。
是否允许填写表单字段。填写 true 或 false。默认值:false。
输出文件名
❖ 响应属性说明
| 字段 | 类型 | 说明 |
|---|---|---|
code | String | 业务状态码 |
msg | String | 返回信息 |
data | Object | 响应数据 |
data.fileKey | String | 文件在存储系统中的唯一 key。 |
data.taskId | String | 任务ID |
data.fileName | String | 源文件名称。预签名模式必填,用于生成对象存储上传地址。 |
data.downFileName | String | 转换完成后的输出文件名。 |
data.fileUrl | String | 源文件存储地址或对象存储 key。 |
data.downloadUrl | String | 文件下载地址 |
data.sourceType | String | 源文件类型 |
data.targetType | String | 目标文件类型 |
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/encrypt \
--header 'x-api-key: YOUR API-KEY' \
--form [email protected] \
--form algorithm=rc4响应示例 (Response)
200 OK
{
"code": "200",
"msg": "success",
"data": {
"fileKey": "saas/2026/06/30/[email protected]",
"taskId": "bce85055-093a-49da-94c3-7f3fdf3ee527",
"fileName": "input.pdf",
"downFileName": "encrypted.pdf",
"fileUrl": "https://example.com/source.pdf",
"downloadUrl": "https://example.com/result.pdf",
"sourceType": "pdf",
"targetType": "encrypt",
"fileSize": 123456,
"convertSize": 123000,
"convertTime": 1200,
"status": "success",
"failureCode": null,
"failureReason": null,
"fileParameter": "{\"userPassword\":\"123456\",\"algorithm\":\"aes256\"}"
}
}