格式转换(文件另存为)
适用版本>=v7.0.2405b.20240523
接口说明:文件格式进行转换,支持转换格式见《格式转换(文件另存为)支持格式》
文档转换传入密码功能说明:
文档转换接口不区分原文件是否支持加密,只要传入密码,密码都会传入内核。
文档转换密码功能,只应在目标文件为PDF时生效,现象如下(以下的输入密码都是用AES+Base64正确加密后传入)1.原文件不加密,存在以下情况
①word转PDF,输入密码123,转换失败
②excel转PDF,输入密码123,XLS/CSV/UOS转换成功(打开密码123),其他失败
③wpp转PDF,输入密码123,转换成功(打开密码123)
④所有文件转为非PDF格式文件,输入密码123,转换成功,转换后文件不需要密码(符合预期)2.原文档DOCX,打开密码123(加密后为q0rxZGJ************),编辑密码123456(加密后为q0rxZGJ************),存在以下情况
①转PDF,不输入密码,转换失败,无目标文件生成(符合预期)
②转PDF,输入打开密码123,转换成功,转换后PDF文件需要密码(打开密码123,编辑密码无)
③转PDF,输入编辑密码123456,转换失败,无目标文件生成(符合预期)
④转DOTM,输入密码123,转换失败,无目标文件生成(符合预期)3.原文档markdown(非Office格式)不加密,转PDF,输入密码123,转换成功,转换后的PDF文件不需要密码
请求说明
| 请求地址 | 配置域名+/graph+/v7/drives/{drive_id}/files/{file_id}/convert |
|---|---|
| 请求方法 | POST |
| 签名方式 | WPS-4签名/WPS-4-GM签名(配置域名+/graph不参与签名) |
| 权限要求 | 应用文档(appfile)格式处理能力(应用授权) kso.appfile.cps.readwrite |
请求头(Header)
| 名称 | 是否必填 | 说明 |
|---|---|---|
| Content-Type | 是 | 固定为: application/json |
| Wps-Docs-Date | 是 | 取当前时间,示例: Wed, 23 Jan 2013 06:43:08 GMT |
| Wps-Docs-Authorization | 是 | 计算方法参考签名说明 |
| Authorization | 是 | 授权凭证,格式为: Bearer {access_token} |
| x-user-token | 否 | 用户鉴权token,设置后会通过回调接口中的X-Wps-Weboffice-Token字段进行透传此参数仅针对ap转pdf/docx时生效 |
查询参数(Query)
| 名称 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| _w_third_user_id | string | 否 | 用户id,长度范围[1,64] |
请求体(Body)
| 名称 | 类型 | 是否必填 | 说明 | | ------------------------------------------ | :-----: | :-----------------------------------------------: | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | | file_name | string | 否 | 另存后新文件的名称,不填则使用源文件名称,包含文件后缀,长度范围[1,240],不支持"/:*?"<>|"特殊符号 | | password | string | 否 | 文档密码。不为空时,会参与转换PDF的过程加密方式:先进行AES/ECB/PKCS5Padding加密,再进行base64加密。示例:123加密后为q0rxZGJ************ | | format | string | 是 | 转换后文件格式 | | et_page_zoom | object | 否 | 表格转换参数 | | ∟ fit_pagewide | integer | 否 | 表示是否适配所有行,0表示正常分页打印,1表示不分页,所有行在一页上 | | ∟ fit_pagetall | integer | 否 | 表示是否适配所有列,0表示正常分页打印,1表示不分页,所有列在一页上;当fit_pagetall与fit_pagewide都为1时,表示将所有内容打印到一页上 | | to_png | object | 否 | 转png参数,仅在转png时生效 | | ∟ long_pic | boolean | 否 | 仅在文字、演示、PDF格式转png时生效。是否转换为长图。默认为 false,按页导出图片。当 long_pic 为 true 时,必须满足 to_page=-1 或者 from_page 和 to_page 同时非空**。备注:转长图目前最大可支持转20页空白文档,在这个基础上,文档的内容越多,转换成功的范围就越小(指最终文件会出现空白页)。建议范围不超过12页。 | | ∟ from_page | int32 | 否 | 仅在文字、演示、PDF格式转png时生效。转换起始页,从 1 开始计数。文字、演示、PDF格式转换成PDF和PNG时,能控制输出范围。 | | ∟ to_page | int32 | 否 | 仅在文字、演示、PDF格式转png时生效。转换结束页,to_page 需要大于 from_page,to_page也可以指定为 -1,导出到最后一页(全部转换)。 备注:目前最大可支持转20页文档。 | | ∟ sheet_index | int32 | 否 | 仅在表格 Excel 转换png时生效。指定需要转换的 Sheet,从 1 开始计数。不传,表示转换所有 Sheet | | to_pdf | object | 否 | 转pdf参数,仅在转pdf时生效 | | | ∟ from_page | int32 | 否 | 仅在文字、演示、PDF格式转pdf时生效,转换起始页,从 1 开始计数 | | ∟ to_page | int32 | 否 | 仅在文字、演示、PDF格式转pdf时生效,转换结束页,to_page 需要大于 from_page,to_page也可以指定为 -1,导出到最后一页(全部转换) | | ∟ sheet_index | int32 | 否 | 仅在表格转pdf时生效,用于表格 Excel 转换时指定需要转换哪一个 Sheet,从 1 开始计数 | | ∟ orientation | int32 | 否 | 表格转PDF 纸张方向选项: 2 -> 纸张横放; 1 -> 纸张竖放; 默认纸张竖放 | | ∟ paper_size | int32 | 否 | (仅在图片转pdf时生效)指定页面大小:0: A4, 3: A5,传无效参数,默认A4 | | ∟ auto_rotate_paper | boolean | 否 | 当使用paper_size指定页面大小时根据图片尺寸,自动使用横向或纵向的纸张,默认true | | ∟ scale_small_image | boolean | 否 | 当使用paper_size指定页面大小时:true: 小图片放大到页面,保持纵横比;false: 小图片居中 | | ∟ jpeg_quality | int32 | 否 | word转pdf指定生成的pdf中图片质量,取值范围[10,100],默认75 | | ∟ center_horizontally | boolean | 否 | et转pdf,表格部分是水平居中的,默认true | | ∟ center_vertically | boolean | 否 | et转pdf,表格部分是垂直居中的,默认true | | web_encoding | string | 否 | word转html格式时的文档编码。10008为GB2312,65001为UTF-8。 | | to_img | object | 否 | 转img参数,仅在转img时生效 | | ∟ dpi | int32 | 否 | pdf转图片,设置图片dpi,默认值96 | | dst_drive_id | string | 否 | 指定结果文件存储的drive盘,不传时默认与原文档存同一个盘内,长度不超过1024位 | | po_convert_param | object | 否 | po转换参数,仅在po格式转换时使用 | | ∟ from_page | int32 | 否 | 画布起始页,大于等于1,若未传参默认按从第一页开始处理 | | ∟** to_page | int32 | 否 | 画布结束页,大于等于1,若未传参默认按导出到最后一页处理 |
请求体示例
{
"et_page_zoom": {
"fit_pagetall": 0,
"fit_pagewide": 0
},
"file_name": "string",
"format": "string",
"password": "string",
"to_img": {
"dpi": 0
},
"to_pdf": {
"auto_rotate_paper": true,
"center_horizontally": true,
"center_vertically": true,
"from_page": 0,
"jpeg_quality": 0,
"orientation": 0,
"paper_size": 0,
"scale_small_image": true,
"sheet_index": 0,
"to_page": 0
},
"to_png": {
"from_page": 0,
"long_pic": true,
"sheet_index": 0,
"to_page": 0
},
"web_encoding": "string",
"dst_drive_id": "string",
"po_convert_param": {
"from_page": 0,
"to_page": 0
}
}响应体(Response)
| 名称 | 类型 | 说明 |
|---|---|---|
| data | object | |
| ∟ created_by | object | 创建者信息 |
| ∟ ∟ id | string | 身份ID |
| ∟ ∟ type | string | Enum: "user" "sp",身份类型 |
| ∟ ctime | integer | 创建时间,时间戳,单位为秒 |
| ∟ drive_id | string | 驱动盘id |
| ∟ id | string | 文件id |
| ∟ link_id | string | 链接id(应用文档:忽略此参数) |
| ∟ link_url | string | 链接url(应用文档:忽略此参数) |
| ∟ modified_by | object | 修改者信息 |
| ∟ ∟ id | string | 身份ID |
| ∟ ∟ type | string | Enum: "user" "sp",身份类型 |
| ∟ mtime | integer | 修改时间,时间戳,单位为秒 |
| ∟ name | string | 文件名 |
| ∟ parent_id | string | 父目录id(应用文档:0) |
| ∟ shared | boolean | 是否开启分享(应用文档:false) |
| ∟ size | integer | 文件大小 |
| ∟ type | string | Enum: "folder" "file" "shortcut",文件类型(应用文档:file) |
| ∟ version | integer | 文件版本号 |
| code | integer | 错误码,参照《错误码说明》 |
| msg | string | 状态信息 |
| detail | string | 详细信息 |
响应体示例
{
"code": 0,
"data": {
"id": "string",
"drive_id": "string",
"mtime": 0,
"link_url": "",
"link_id": "",
"shared": false,
"parent_id": "0",
"created_by": {
"id": "string",
"type": "sp"
},
"modified_by": {
"id": "string",
"type": "sp"
},
"size": 0,
"version": 0,
"type": "file",
"name": "string",
"ctime": 0
},
"detail": "",
"msg": "ok"
}