- 大模型加速器
- 通用文档解析
- 通用文本向量
- 智能文档抽取
- 通用识别
- 通用文字识别
- 通用表格识别
- 印章检测识别
- 二维码识别
- 手写签名识别
- 图像智能处理
- 票据识别
- 文档格式转换
- AI篡改检测
- 卡证识别
- 合同比对
- 财务相关API
功能描述
pdf转markdown
上传图片/pdf/word/html,进行版面检测,文字识别,表格识别,版面分析等操作,并生成markdown文档
请求URL
https://api.textin.com/ai/service/v1/pdf_to_markdown
HTTP请求方法(Method)
HTTP POST
请求头说明(Request Headers)
请在HTTP请求中添加以下自定义标头(Header)。
header 名 | 值 |
---|---|
x-ti-app-id | 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id |
x-ti-secret-code | 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code |
URL参数(Parameters)
URL参数指以{参数名}={参数值} 形式拼接到 URL 上的键值对。它以
?
开头,不同参数之间使用&
连接。形如?p1=v1&p2=v2
参数名 | 数据类型 | 是否必填 | 允许的值 | 描述 |
---|---|---|---|---|
pdf_pwd | string | 否 | 见描述 |
当pdf为加密文档时,需要提供密码。 备注:对前端封装该接口时,需要自行对密码进行安全防护 |
char_details | integer | 否 | 见描述 |
当为1 或 true时,可以返回 char_pos 字段, 保存了每一行的位置信息。默认关闭 |
page_details | integer | 否 | 见描述 |
当为1 或 true时,可以返回 pages 字段, 保存了每一页更加详细的解析结果。默认打开 |
catalog_details | integer | 否 | 见描述 |
当为1 或 true时,可以返回 catalog details |
dpi | integer | 否 | 见描述 |
pdf文档的坐标基准,默认144 dpi。 当parse_mode=auto时,默认动态,支持72,144,216; 当parse_mode=scan时,默认144,支持72,144,216; |
page_start | integer | 否 | 见描述 |
当上传的是pdf时,page_start 表示从第几页开始转 |
page_count | integer | 否 | 见描述 |
当上传的是pdf时,page_count 表示要进行转换的pdf页数。 总页数不得超过1000页,默认为1000页 |
apply_document_tree | integer | 否 | 见描述 |
是否生成标题,默认为1,生成标题
|
markdown_details | integer | 否 | 见描述 |
是否生成markdown details,默认为1,生成markdown details
|
table_flavor | string | 否 | 见描述 |
markdown里的表格格式,默认为html,按html语法输出表格
|
get_image | string | 否 | 见描述 |
获取markdown里的图片,默认为none,不返回任何图像
|
image_output_type | string | 否 | 见描述 |
指定引擎返回的图片对象输出类型,默认返回子图片url和页图片id
|
parse_mode | string | 否 | 见描述 |
PDF解析模式,默认为scan模式,仅按文字识别方式处理。图片不用设置,均按文字识别方式处理。
|
请求体说明(Request Body)
Content-Type: application/octet-stream
支持的文件格式:png, jpg, jpeg, pdf, bmp, tiff, webp, doc, docx, html, mhtml
请注意,请求体的数据格式为文件的二进制流,非 FormData 或其他格式。文件大小不超过 500M,图像宽高须介于 20 和 10000(像素)之间。
响应体说明(Response)
Content-Type: application/json
JSON结构说明如下:
字段名 | 类型 | 描述 |
---|---|---|
code | integer | 错误码,详见“错误码说明” |
message | string |
错误信息 |
result | object | |
+ total_page_number | integer |
输入Pdf时, 返回文档的总页数 |
+ document_type | string |
记录文档类型,若引擎判断文档类型非法,则无法进行正确的解析过程 |
+ valid_page_number | integer |
记录本次解析成功的总页数 |
+ paragraph_number | integer |
记录本次解析文档的段落数,适用于所有文件类型 |
+ character_number | integer |
记录本次解析文档的字符数,适用于所有文件类型 |
+ pages | array |
文档按照页为单位展开时, 存储每一页的详情和状态 (适用于PDF),部分信息跟metrics字段重复。为兼容旧接口,保留metrics信息。 |
++ status | string |
表示当前页的引擎输出状态,或者error_message |
++ page_id | number |
当前页码 (若为流式文件, 页码置为0) |
++ durations | number |
当前页总耗时 |
++ image_id | string |
(仅用于PDF) 当URL参数get_image=objects, 本条字段存储图像上传对象存储后获得的图像ID。
下载方式: https://api.textin.com/ocr_image/download?image_id=xxx, 需要在headers里添加appid和key) |
++ width | integer |
文档页宽度 |
++ height | integer |
文档页高度 |
++ angle | integer |
图像(中文字)的角度(当输入为图像时,默认为0, 可选值0, 90, 180, 270) |
++ content | array |
基础数据: 文字行, 图像中的其中一种,请参考textline和image的说明 |
++ structured | array |
结构化数据, 为textblock, table, imageblock, footer, header中的一种 |
+ detail | array |
markdown详细信息, 参考markdown_details的说明 |
++ page_id | integer |
当前段落所在页码 |
++ paragraph_id | integer |
当前段落id |
++ outline_level | integer |
标题级别: (最多支持5级标题) -1.正文 0.一级标题 1.二级标题 ... |
++ text | string |
文本 |
++ type | string |
类型, paragraph(段落类型,包括正文、标题、公式等文字信息)、image(图片类型)、table(表格类型) |
++ image_url | string |
当get_image = objects 时,返回图片的公共连接,图片默认保存30天,如需长久保存,请在有效期内下载图片并保存;或者使用image_output_type=base64str,图片以base64的方式返回 |
++ content | integer |
内容类型
|
++ position | array |
以长度为8的整型数组表示四边形,8个数两两一组为一个点的横纵坐标,分别是左上,右上,右下,左下。 当输入是PDF时, 此坐标是基于72dpi的;当输入是图片时,此坐标是原图里的坐标。 单位:像素 |
++ sub_type | string |
当type是paragraph时,如果段落为目录,输出catalog; 当type是image时,如果图像为印章,输出为stamp |
++ continue | boolean |
段落块连续属性,用于判断完整的段落块是否被页面或栏分割,为true表示该段落块和下一个段落块连续(即两个段落块可合成一个逻辑段落块,如果 continue为true 且该段落块位于本页结尾,该段落块可与下一页开头段落块组合为一个逻辑段落块,否则与本页该段落块后一相邻段落块可组合为一个逻辑段落块) |
+ catalog | object |
描述目录树的结构 |
++ toc | array |
返回的table of contents |
+++ sub_type | string |
标题类型 text_title、 image_title、 table_title |
+++ hierarchy | integer |
标题层级, 1 是 1级标题, 2 是 2级标题,依次类推 |
+++ title | string |
标题内容 |
+++ page_id | integer |
标题所在页码 (最小页码为 1) |
+++ pos | array |
该目录区域的四个角点坐标,依次left-top,right-top,right-bottom,left-bottom. |
+ markdown | string |
markdown 正文字符串 |
version | string |
doc_restore 引擎版本号 |
duration | integer |
引擎耗时 (毫秒) |
metrics | array |
每一页的信息 |
+ page_image_width | integer |
当前段落所在页的图片宽或者pdf转成的图片宽 |
+ page_image_height | integer |
当前段落所在页的图片高或者pdf转成的图片高 |
+ dpi | integer |
当前pdf页转成图片所用的dpi |
+ durations | number |
当前页总耗时 |
+ status | string |
当前页状态 |
+ page_id | number |
当前页码 |
+ angle | integer |
图像角度, 定义0度为人类阅读文字的图像方向,称为正置图像, 本字段表示输入图像是正置图像进行顺时针若干角度的旋转所得。
|
+ image_id | string |
当前页图片id (下载方式:https://api.textin.com/ocr_image/download?image_id=xxx ,需要在headers里添加appid和key) |
结构体说明
各类型返回的字段及字段定义说明如下:
textline
字段名 | 类型 | 描述 |
---|---|---|
id | integer |
数据id(页内唯一) |
type | string |
数据类型,line |
text | string |
文本行文字内容, 当sub_type=stamp时, text为印章上的文字. |
angle | integer |
文本行文字方向, 默认为0(angle为0时, json中可能不包含angle属性). |
pos | array |
文本行四个角点坐标 |
sub_type | string |
子类型, 当type为line时, 有handwriting; 当type为image, 有stamp |
direction | integer |
文字方向, 默认为0. 0:横向文本; 1:竖向文本; 2:横向右往左文本(如阿拉伯语) |
score | number |
文本行内每个字符的置信度(仅当输入图像做ocr时) |
char_pos | array |
文本行内每个字符的坐标,每个item是一个由八个整数组成的数组,分别表示,左上,右上,右下,左下四个点的(x,y)坐标 |
image
字段名 | 类型 | 描述 |
---|---|---|
id | integer |
数据id |
type | string |
数据类型, image |
pos | array |
图像四个角点坐标 |
sub_type | string |
子类型, 如stamp, background |
stamp_type | string |
印章类型, 当sub_type 为stamp时,具体数值定义请依照全文/印章接口定义 |
stamp_shape | string |
印章形状, 当sub_type 为 stamp时, 具体数值定义请依照全文/印章接口定义 |
stamp_color | string |
印章颜色,当sub_type 为 stamp时, 具体数值定义请依照全文/印章接口定义 |
size | array |
图像大小[width, height] |
data | object |
图像内容 |
+ base64 | string |
图像文件(jpg, png)的base64字符串 |
+ region | array |
图像在页图像中的区域(四边形4个点坐标) |
+ path | string |
图像文件路径(如在zip包中的路径) |
imageblock
字段名 | 类型 | 描述 |
---|---|---|
type | string |
图像块类型, 值为 image |
pos | array |
文本行四个角点坐标 |
lines | array |
图像包含的文本行id, |
zorder | integer |
z-order 默认为0; 如-1表示居于底层。 |
content | array |
图像资源数据id数组 |
textblock
字段名 | 类型 | 描述 |
---|---|---|
type | string |
段落块类型, 固定为 textblock |
pos | array |
文本行四个角点 |
content | array |
段落块内文本行id数据组 |
sub_type | string |
段落块字类型,如title, list, formula等 |
continue | boolean |
段落块连续属性,用于判断完整的段落块是否被页面或栏分割,为true表示该段落块和下一个段落块连续(即两个段落块可合成一个逻辑段落块,如果 continue为true 且该段落块位于本页结尾,该段落块可与下一页开头段落块组合为一个逻辑段落块,否则与本页该段落块后一相邻段落块可组合为一个逻辑段落块) |
table
字段名 | 类型 | 描述 |
---|---|---|
type | string |
表格块类型, 固定为table |
sub_type | string |
表格子属性,用于标识是否为无线表格,默认为“bordered"(即json中无该字段时,默认值为bordered) |
pos | array |
文本行四个角点坐标 |
rows | integer |
表格行数 |
cols | integer |
表格列数 |
columns_width | array |
表格列宽度列表 |
rows_height | array |
表格行高度列表 |
continue | boolean |
当前表格与后一表格连续,用来判断一个表格是否被页面分割(如果 continue为true 且该表格位于本页结尾,该表格可与下一页开头表格组合为一个表格) |
cells | array |
单元格数组 |
+ row | integer |
单元格行号 |
+ col | integer |
单元格列号 |
+ row_span | integer |
单元格行跨度,默认为1 |
+ col_span | integer |
单元格列跨度,默认为1 |
+ pos | array |
单元格的四个角点坐标,依次left-top,right-top,right-bottom,left-bottom. |
+ content | array |
单元格内容 |
footer
字段名 | 类型 | 描述 |
---|---|---|
type | string |
页脚块类型,固定为 footer |
pos | array |
文本行四个角点坐标 |
blocks | array |
footer段落内容,为textblock, imageblock, table中其中的一种 |
header
字段名 | 类型 | 描述 |
---|---|---|
type | string |
页眉块类型,固定为 header |
pos | array |
文本行四个角点坐标 |
blocks | array |
header段落内容,为textblock, imageblock, table中的其中一种 |
imagedata
字段名 | 类型 | 描述 |
---|---|---|
base64 | string |
图像文件(jpg, png)的base64字符串 |
region | array |
图像在页图像中的区域(四边形4个点坐标) |
path | string |
图像文件路径(如在zip包中的路径) |
JSON结构示例
错误码说明
错误码 | 描述 |
---|---|
40101 | x-ti-app-id 或 x-ti-secret-code 为空 |
40102 | x-ti-app-id 或 x-ti-secret-code 无效,验证失败 |
40103 | 客户端IP不在白名单 |
40003 | 余额不足,请充值后再使用 |
40004 | 参数错误,请查看技术文档,检查传参 |
40007 | 机器人不存在或未发布 |
40008 | 机器人未开通,请至市场开通后重试 |
40301 | 图片类型不支持 |
40302 | 上传文件大小不符,文件大小不超过 500M |
40303 | 文件类型不支持 |
40304 | 图片尺寸不符,图像宽高须介于 20 和 10000(像素)之间 |
40305 | 识别文件未上传 |
40422 | 文件损坏(The file is corrupted.) |
40423 | PDF密码错误(Password required or incorrect password.) |
40424 | 页数设置超出文件范围(Page number out of range.) |
40425 | 文件格式不支持(The input file format is not supported.) |
40427 | Input DPI is not in the allowed DPIs list(72,144,216). |
50207 | 部分页面解析失败(Partial failed) |
30203 | 基础服务故障,请稍后重试 |
500 | 服务器内部错误 |