Skip to content

完整示例

本页提供一套最短可运行的 PDF 转 Word 同步请求示例,覆盖从 Public Key 复制到拿到 downloadUrl 下载结果的全部步骤。

示例目标:把本地的 sample.pdf 通过同步接口转成 Word,并下载结果文件。

调用流程

1准备 PDF本地文件 sample.pdf2获取 Public Key控制台 → API Keys3构造请求POST · multipart/form-datax-api-key 头4解析响应同步返回 downloadUrl5下载结果拿到 sample.docx

请求说明

项目
请求地址(Global)https://api-server.compdf.com/server/v2/process/pdf/convertType
请求地址(中国大陆)https://api-server.compdf.cn/server/v2/process/pdf/convertType
Auth Headerx-api-key: YOUR_PUBLIC_KEY
请求方式POST
传参方式multipart/form-data
调用方式同步

请求参数

参数类型必填说明
fileFile待转换的 PDF 文件(同步接口仅支持 1 个文件,合并功能除外)。
parameterString(JSON)功能参数,PDF→Word 的常用项见下方示例(如 outputFormatpageRange)。

请求示例

bash
curl -X POST "https://api-server.compdf.com/server/v2/process/pdf/convertType" \
  -H "x-api-key: YOUR_PUBLIC_KEY" \
  -F "file=@./sample.pdf" \
  -F 'parameter={"outputFormat":"docx","pageRange":"all"}'
python
import requests

url = "https://api-server.compdf.com/server/v2/process/pdf/convertType"
headers = {"x-api-key": "YOUR_PUBLIC_KEY"}
files = {"file": open("sample.pdf", "rb")}
data  = {"parameter": '{"outputFormat":"docx","pageRange":"all"}'}

resp = requests.post(url, headers=headers, files=files, data=data, timeout=120)
result = resp.json()
print(result)

if result.get("code") == "200" and result.get("data", {}).get("downloadUrl"):
    download = requests.get(result["data"]["downloadUrl"], timeout=120)
    open("sample.docx", "wb").write(download.content)
java
OkHttpClient client = new OkHttpClient();

RequestBody body = new MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("file", "sample.pdf",
                RequestBody.create(new File("sample.pdf"),
                        MediaType.parse("application/pdf")))
        .addFormDataPart("parameter",
                "{\"outputFormat\":\"docx\",\"pageRange\":\"all\"}")
        .build();

Request request = new Request.Builder()
        .url("https://api-server.compdf.com/server/v2/process/pdf/convertType")
        .addHeader("x-api-key", "YOUR_PUBLIC_KEY")
        .post(body)
        .build();

try (Response response = client.newCall(request).execute()) {
    System.out.println(response.body().string());
}
javascript
import fs from 'node:fs'
import FormData from 'form-data'
import axios from 'axios'

const form = new FormData()
form.append('file', fs.createReadStream('./sample.pdf'))
form.append('parameter', JSON.stringify({ outputFormat: 'docx', pageRange: 'all' }))

const { data } = await axios.post(
  'https://api-server.compdf.com/server/v2/process/pdf/convertType',
  form,
  { headers: { 'x-api-key': 'YOUR_PUBLIC_KEY', ...form.getHeaders() }, timeout: 120_000 }
)
console.log(data)

成功响应

json
{
  "code": "200",
  "msg": "success",
  "data": {
    "taskId": "9f1b3a2e8c0d4f7e9a1b2c3d4e5f6789",
    "status": "TaskFinish",
    "fileName": "sample.pdf",
    "outputFileName": "sample.docx",
    "downloadUrl": "https://download.compdf.com/xxxx/sample.docx",
    "expireTime": "2026-05-09T08:00:00Z"
  }
}

字段简要:

字段说明
code业务码,"200" 表示成功,其它详见错误码页。
data.taskId任务 ID,可用于事后查询或关闭任务。
data.status任务状态,TaskFinish 表示已完成。
data.downloadUrl结果文件下载地址,有有效期,请尽快下载。
data.expireTime下载链接过期时间(UTC)。

失败提醒

HTTP 200 ≠ 业务成功

HTTP 状态码 200 仅表示请求送达,业务结果以响应中的 code 字段为准

  • code != "200" → 请按 msg / 错误码 排查。
  • 鉴权失败常见为 401 / 403:确认 x-api-key 是否正确、是否启用、地区是否对应(compdf.com / compdf.cn)。
  • 文件过大(默认 50MB)会触发 413

下一步