# 文档转换成 txt

将文档格式转换成 txt

## 基本信息{#base}

请求路径：`POST /api/developer/v1/office/convert/to/txt`

## 目前支持的文档类型

| 文档类型 | 扩展名     |
| -------- | ---------- |
| 演示     | .pptx .ppt |
| WPS 文字 | .docx .doc |
| WPS 表格 | .xlsx .xls |
| WPS PDF  | .pdf       |

## Header 参数{#header}

| 参数          | 必须 | 类型   | 说明                                                                                                |
| ------------- | ---- | ------ | --------------------------------------------------------------------------------------------------- |
| Date          | 是   | string | 使用 [RFC1123](https://datatracker.ietf.org/doc/html/rfc822#section-5) 时间格式的当前时间           |
| Content-Md5   | 是   | string | `HTTP Body` 中数据的 `MD5` 值十六进制表达方式, 必需小写, 如果是 `get` 请求一律使用 `URI` 计算 `MD5` |
| Content-Type  | 是   | string | 目前固定为: `application/json`                                                                      |
| Authorization | 是   | string | "WPS-2:" + `app_id` + ":" + sha1( `app_key` + `Content-Md5` + `Content-Type` + `DATE`)              |

## Body 参数{#body}

| 参数           | 必须 | 类型   | 说明                                                                                                            |
| -------------- | ---- | ------ | --------------------------------------------------------------------------------------------------------------- |
| url            | 是   | string | 文档下载地址                                                                                                    |
| filename       | 是   | string | 文档名称，包含扩展名，例如：说明文档.pdf                                                                        |
| password       | 否   | string | 文档打开密码(如果文档有加密，该项则必填)                                                                        |
| long_txt       | 否   | bool   | 是否转换成长文本，设置为 true 时，可以将需要导出的页中的文字合并导出。默认值为 false，按页导出 txt              |
| hold_line_feed | 否   | bool   | 转换 txt 时是否保留文档中的换行符，设置为 true 时，导出内容包含换行符。默认值为 false，导出内容不包含换行。     |
| ranges         | 否   | string | 自定义需要转换的分页范围，例如："1,2-4,7"，则表示转换文档的 1、2、3、4、7 页面 (与 `from_page`和`to_page` 互斥) |
| from_page      | 否   | int    | 转换起始页，从 1 开始计数(与 `ranges`互斥)                                                                      |
| to_page        | 否   | int    | 转换结束页，需要大于 `from_page`， (与 `ranges`互斥)                                                            |

## 返回参数{#return}
<!-- complex-table -->

| 参数 | 必须 | 类型 | 说明 |
| --- | --- | --- | --- |
| code | 是 | integer | 错误码 |
| data | 是 | data {} | 响应数据 |
| > task_id | 是 | string | 转换任务 id |

## 示例{#example}

#### 请求示例

:::httpsnippet `{"method":"POST","url":"https://solution.wps.cn/api/developer/v1/office/convert/to/txt","headers":{"Date":"Wed, 23 Jan 2013 06:43:08 GMT","Content-Md5":"d41d8cd98f00b204e9800998ecf8427e","Content-Type":"application/json","Authorization":"WPS-2:******:ac59dac1460772a04b3a97d7ef78409f28241e3a"},"data":{"url": "https://***.com/***","filename":"说明文档.pdf","long_txt":true}}`
:::

#### 返回示例

```json
{
  "code": 0,
  "data": {
    "task_id": "open:zjsiwfuotpbqblrlfwtkfkioargjbla"
  },
  "result": "ok"
}
```

## 查询异步任务结果

携带 task_id[查询结果](/app-integration-dev/docs-center/convert/api-docs/online-convert/tasks-status.html)

### 其中 result 对象说明
<!-- complex-table -->

| 参数 | 必须 | 类型 | 说明 |
| --- | --- | --- | --- |
| txts | 否 | txts[] | 转换后的 txt 文件列表 |
| > url | 是 | string | 转换后的 txt 文件下载地址(半小时有效) |
| > size | 是 | int | 转换后的 txt 文件大小(以字节为单位) |

### 返回示例

```json
{
  "code": 0,
  "data": {
    "status": "success",
    "progress": 100,
    "result": {
      "txts": [
        {
          "url": "https://***.com/***",
          "size": 70154
        },
        {
          "url": "https://***.com/***",
          "size": 112172
        },
        {
          "url": "https://***.com/***",
          "size": 954
        },
        {
          "url": "https://***.com/***",
          "size": 35327
        }
      ],
      "task":{"elapsed":7892,"resource_size":1070216}
    }
  }
}
```

## 错误码{#code}

请参考[错误码说明](error.md)
