文档格式转换
接口描述
原「图文转换器」现已更名为「文档格式转换」。
可识别图片/PDF文档版面布局,提取文字内容,并转换为保留原文档版式的Word、Excel文档,方便二次编辑和复制,可支持含表格、印章、水印、手写等内容的文档。满足文档格式转换、企业档案电子化等信息管理需求。如希望快速可视化体验效果,可登录智能文档分析平台,一键上传文档,在线测试;在线工具和API服务的额度共享互通。
在线工具已支持「PDF -> 双层PDF/双层OFD」、「OFD -> 双层OFD/Word/Excel」 转换类型,API服务尚不支持上述转换类型,正在开发中,敬请期待。
文档格式转换API服务为异步接口,需要先调用提交请求接口获取 task_id,然后调用获取结果接口进行结果轮询,建议提交请求后 5~10 秒轮询。提交请求接口QPS为2,获取结果接口QPS为10。
提交请求接口
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/doc_convert/request
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Body中放置请求参数,参数详情如下:
请求参数
注意:要求使用 JSON 格式的结构体来描述一个请求的具体内容。
参数 | 是否必选 | 类型 | 说明 |
---|---|---|---|
image | 和 url/pdf_file 三选一 | string | 图像的base64编码,需去掉编码头(data:image/jpeg;base64,)支持的文件类型:jpg/jpeg/png/bmp支持的文件大小:base64编码后大小不超过4M,最短边至少15px,最长边最大4096px优先级: image > url > pdf_file,当image字段存在时,url、pdf_file字段失效 |
url | 和 image/pdf_file 三选一 | string | 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码支持的文件类型:jpg/jpeg/png/bmp支持的文件大小:base64编码后大小不超过4M,最短边至少15px,最长边最大4096px优先级: image > url > pdf_file,当image字段存在时url字段失效请注意关闭URL防盗链 |
pdf_file | 和 image/url 三选一 | string | pdf文件的base64编码,base64编码后大小不超过10M优先级: image > url > pdf_file,当image、url字段存在时,pdf_file字段失效 |
pdf_file_num | 否 | string | 需要识别的PDF文件的对应页码,当 pdf_file 参数有效时,识别传入页码的对应页面内容;若不传入,默认识别文件所有页,页码从1开始 |
请求代码示例
提示一:使用示例代码前,请记得替换其中的示例Token、文档地址或Base64信息。
提示二:目前仅提供Python语言,如需其他语言示例可参考 示例代码中心 。
1import base64
2import requests
3
4'''
5文档格式转换-提交请求
6'''
7
8
9request_host = "https://aip.baidubce.com/rest/2.0/ocr/v1/doc_convert/request"
10# 二进制方式打开图片文件
11f = open('[本地文件]', 'rb')
12img = base64.b64encode(f.read())
13
14params = {"image": img}
15access_token = '[调用鉴权接口获取的token]'
16request_url = request_host + "?access_token=" + access_token
17headers = {'Content-Type': 'application/x-www-form-urlencoded'}
18response = requests.post(request_url, headers=headers, data=params)
19if response:
20 print(response.json())
返回说明
返回参数
字段 | 类型 | 说明 |
---|---|---|
success | bool | 当前请求状态; true 表示请求成功,false表示请求异常 |
log_id | uint64 | 唯一的log id,用于问题定位 |
result | dict | 返回的结果列表 |
+ task_id | string | 该请求生成的task_id,后续使用该task_id获取识别结果 |
code | int | 成功状态码 |
message | string | 详情 |
返回示例
成功返回示例:
1{
2 "success":true,
3 "log_id": 12345,
4 "result":{
5 "task_id":"task-xxxxxxx",
6 },
7 "code":1001,
8 "message": "Create task successfully!"
9}
失败返回示例(详细的错误码说明见API文档-错误码):
1{
2 "success":false,
3 "log_id": 12345,
4 "error_code": 216401,
5 "error_msg": "Create task failed!"
6}
获取结果接口
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
HTTP 方法:POST
请求URL: https://aip.baidubce.com/rest/2.0/ocr/v1/doc_convert/get_request_result
URL参数:
参数 | 值 |
---|---|
access_token | 通过API Key和Secret Key获取的access_token,参考“Access Token获取” |
Header如下:
参数 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded |
Body中放置请求参数,参数详情如下:
请求参数
参数 | 是否必选 | 类型 | 说明 |
---|---|---|---|
task_id | 是 | string | 发送提交请求时返回的task_id |
请求代码示例
提示一:使用示例代码前,请记得替换其中的示例Token、task_id。
提示二:目前仅提供Python语言,如需其他语言示例可参考 示例代码中心 。
1import requests
2
3'''
4文档格式转换-获取结果
5'''
6
7
8request_host = "https://aip.baidubce.com/rest/2.0/ocr/v1/doc_convert/get_request_result"
9params = {"task_id": "[调用提交请求接口获取的task_id]"}
10
11access_token = '[调用鉴权接口获取的token]'
12request_url = request_host + "?access_token=" + access_token
13headers = {'Content-Type': 'application/x-www-form-urlencoded'}
14response = requests.post(request_url, headers=headers, data=params)
15if response:
16 print(response.json())
返回说明
返回参数
字段 | 类型 | 说明 |
---|---|---|
success | bool | 当前请求状态; true表示请求成功,false表示请求异常 |
log_id | uint64 | 唯一的log id,用于问题定位 |
result | dict | 返回的结果列表 |
+ task_id | string | 该文件对应请求的task_id |
+ ret_code | int | 识别状态,1:任务未开始;2:进行中;3:已完成 |
+ ret_msg | string | 识别状态信息:任务未开始;进行中;已完成 |
+ percent | int | 文档转换进度(百分比) |
+ result_data | dict | 识别结果字符串,返回word、excel的文件分别的下载地址 |
+ +word | string | 还原后的word文件的下载地址,下载地址有效期为30天,文件识别失败时返回"" |
+ +excel | string | 还原后的Excel文件的下载地址,下载地址有效期为30天,若文档中没有表格则返回"" |
+ create_time | datetime | 任务创建时间 |
+ start_time | datetime | 任务开始时间 |
+ end_time | datetime | 任务结束时间 |
code | int | 成功状态码 |
message | string | 详情 |
返回示例
成功返回示例:
1{
2 "success":true,
3 "log_id": "xxxxxx",
4 "result":{
5 "task_id":"task-xxxxxxx",
6 "ret_code": 3,
7 "ret_msg": "已完成",
8 "percent": 100,
9 "result_data": {
10 "word": "word_download_url",
11 "excel": "",
12 },
13 "create_time": "2023-01-17 11:06:12",
14 "start_time": "2023-01-17 11:06:13",
15 "end_time": "2023-01-17 11:06:15"
16 },
17 "code":1001,
18 "message": "Query task successfully!""
19}
若查询的task_id不存在, 返回result为{}。 请求失败响应体示例如下:
1{
2 "code":1001,
3
4 "log_id":1635891796603052032,
5
6 "message":"Query task successfully!",
7
8 "result":{},
9
10 "success":true
11}