文档格式转换
接口描述
原「图文转换器」现已更名为「文档格式转换」。
可识别图片/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编码后进行urlencode,需去掉编码头(data:image/jpeg;base64, )要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式优先级: image > url > pdf_file,当image字段存在时,url、pdf_file字段失效 |
url | 和 image/pdf_file 三选一 | string | 图片完整URL,URL长度不超过1024字节,URL对应的图片base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式优先级: image > url > pdf_file,当image字段存在时url字段失效请注意关闭URL防盗链 |
pdf_file | 和 image/url 三选一 | string | PDF文件,base64编码后进行urlencode,要求base64编码和urlencode后大小不不超过10M优先级: image > url > pdf_file,当image、url字段存在时,pdf_file字段失效 |
pdf_file_num | 否 | string | 需要识别的PDF文件的对应页码,当 pdf_file 参数有效时,识别传入页码的对应页面内容;若不传入,默认识别文件所有页,页码从1开始 |
请求代码示例
提示一:使用示例代码前,请记得替换其中的示例Token、文档地址或Base64信息。
提示二:目前仅提供Python语言,如需其他语言示例可参考 示例代码中心 。
import base64
import requests
'''
文档格式转换-提交请求
'''
request_host = "https://aip.baidubce.com/rest/2.0/ocr/v1/doc_convert/request"
# 二进制方式打开图片文件
f = open('[本地文件]', 'rb')
img = base64.b64encode(f.read())
params = {"image": img}
access_token = '[调用鉴权接口获取的token]'
request_url = request_host + "?access_token=" + access_token
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, headers=headers, data=params)
if response:
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 | 详情 |
返回示例
成功返回示例:
{
"success":true,
"log_id": 12345,
"result":{
"task_id":"task-xxxxxxx",
},
"code":1001,
"message": "Create task successfully!"
}
失败返回示例(详细的错误码说明见API文档-错误码):
{
"success":false,
"log_id": 12345,
"error_code": 216401,
"error_msg": "Create task failed!"
}
获取结果接口
在线调试
您可以在 示例代码中心 中调试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
请求说明
请求示例
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语言,如需其他语言示例可参考 示例代码中心 。
import requests
'''
文档格式转换-获取结果
'''
request_host = "https://aip.baidubce.com/rest/2.0/ocr/v1/doc_convert/get_request_result"
params = {"task_id": "[调用提交请求接口获取的task_id]"}
access_token = '[调用鉴权接口获取的token]'
request_url = request_host + "?access_token=" + access_token
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, headers=headers, data=params)
if response:
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 | 详情 |
返回示例
成功返回示例:
{
"success":true,
"log_id": "xxxxxx",
"result":{
"task_id":"task-xxxxxxx",
"ret_code": 3,
"ret_msg": "已完成",
"percent": 100,
"result_data": {
"word": "word_download_url",
"excel": "",
},
"create_time": "2023-01-17 11:06:12",
"start_time": "2023-01-17 11:06:13",
"end_time": "2023-01-17 11:06:15"
},
"code":1001,
"message": "Query task successfully!""
}
若查询的task_id不存在, 返回result为{}。 请求失败响应体示例如下:
{
"code":1001,
"log_id":1635891796603052032,
"message":"Query task successfully!",
"result":{},
"success":true
}