文档转图片
文档转图片,按购买渠道选择转换接口、图片尺寸与输出方式。
概述
使用流程
由于转换需要时间,文件越大页数越多,转换越久,故默认采用异步的方式获得转换结果。即调用转换接口后会获得token,随后有2种方式查询转换结果:
调用转换接口
v1和v2接口功能相同,调用方式不一样。v2支持同步转换,v1不支持,推荐用v2接口。
v2接口统一为HTTP POST JSON:
- JSON支持输入:文件url;文件Base64字符串;多张图片的url。见:文档转换_v2
- v2版本的API除了异步,还支持同步调用,见:同步调用
- v2版本中的参数如果未出现在v1版本中,v1版本用同样参数也能工作
v1接口包括3种转换方式:
- 单一文档转为图片,文档是一个下载链接,用HTTP GET方式,见:文档转换GET_v1
- 单一文档转为图片,文档POST到服务器,用HTTP POST Form Data方式,见:文档转换POST_v1
- 多个图片转为图片,文档是多个下载链接,用HTTP POST JSON方式,见:多张图片转换POST_v1
调用转换API需要签名,详细见文档附录:阿里签名 调用查询结果API无需签名。
阿里云支持从OSS内网直接下载文件,节约流量,见:阿里云独有部分
文档转换_v2
异步url:
https://all2img.market.alicloudapi.com/v2/convert_async
同步url:
https://all2img.market.alicloudapi.com/v2/convert_sync
HTTP方式: POST
Header中的Content-Type传入application/json
Body是JSON格式,支持以下3种输入源文件的方法:
方法1: 文件url,最大1500M:
{"input": ["http://xxx.docx"]}
方法2: 文件Base64字符串,注意需要传入type(源文档类型),Base64字符串最大8M:
{"input": ["base64字符串"], "type": "docx"}
方法3: 多张图片url,注意只能是图片. 多张图片只能转为长图或动图,因此需指定outtype
{"input": ["http://xxx.jpg", "http://xxx.png"], "outtype": 2}
必须签名才能调用成功,签名见阿里签名规则:
https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/use-cases/call-apis
支持以下源文件格式:
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
| 网址网页 | url | 网址,例如:https://www.duhuitech.com |
自定义参数:
| 参数 | 类型 | 备注 | 默认值 |
| type | string | 要转换的原始文件扩展名,如果不传,则取url中的扩展名,注意如果无法获取扩展名会导致转换异常或出错 | 空 |
| 输出图片相关 | |||
| outtype | int | 输出类型:默认1:每页一个图;2:长图;3:动图 | 1 |
| imagesize | int | 输出图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,每页一图宽高最大20000。 |
0 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 1 |
| imageformat | string | 如果输出是每页一个图或长图,输出的图片格式。默认空:jpg,可填入png | 空 |
| adjustorientation | int | 调整所有页横屏或是竖屏。默认0不调整。 1: 竖屏,如果页面横屏则顺时针90度变竖屏 2: 竖屏,如果页面横屏则逆时针90度变竖屏 3: 横屏,如果页面竖屏则顺时针90度变横屏 4 :横屏,如果页面竖屏则逆时针90度变横屏 |
0 |
| grayimage | int | 是否输出灰度图,默认0否,1是 | 0 |
| pagesplit | int | 将每一页按长边等分为多页。例如一页是试卷,可以分为左右二页。默认0不分页,2: 分2页,3: 分3页 | 0 |
| 输出水印相关 | |||
| watermark | string | 添加水印,字符个数最大10个 | 空 |
| watermarkfontsize | int | 水印的字体大小,默认24pt | 24 |
| watermarkfontcolor | string | 水印的颜色,输入颜色码,默认黑色#000000,必须7位 | #000000 |
| watermarkfontalpha | int | 水印的透明度,取值范围1-100,越小越透明,默认20 | 20 |
| watermarkstyle | int | 水印的样式,默认0:文档中央一个水印;1: 文档铺满水印 | 0 |
| 输入PDF文件相关(源文件为PDF) | |||
| pageindexes | string | 如果源文件是PDF文件,指定转换的PDF页数,默认空全部页,例如:1,3,5-7就是1,3,5,6,7共5页 | 空 |
| 输入Office文件相关(源文件为Word,PPT,Excel,WPS等) | |||
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 0 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 0 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 0 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 0 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 0 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用,2不使用且只显示有内容的区域 | 0 |
| excelpagesize | int | 如果是Excel文件,设定页面大小,默认A4。0:A4,1:A3,2:A4,3:A5,4:B4,5:B5,6:Letter,7:Legal,8:Tabloid,9:Ledger | 0 |
| excelpagefitmode | int | 如果是 Excel 文件,页面缩放方式:0 默认(不使用打印区域时将所有列调整为一页宽;使用打印区域时沿用源文件缩放);1 将所有列调整为一页宽;2 将每张工作表调整为一页;3 将所有行调整为一页高;4 无缩放,按 100% 比例输出。设置为 1、2、3、4 时,与 exceluseprintarea=1 同时使用仍会保留打印区域 |
0 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 0 |
| powerpointoutputtype | int | 如果是PPT文件,设定导出样式,默认幻灯片。0:幻灯片,0以上是讲义模式:1:每页一个幻灯片,2:每页二个幻灯片,3:每页三个幻灯片,4:每页四个幻灯片,5:每页六个幻灯片,6:每页九个幻灯片 | 0 |
| powerpointhandoutorder | int | 如果是PPT文件,当设置为讲义时,设定顺序,默认0水平,1垂直 | 0 |
| powerpointhandoutorientation | int | 如果是PPT文件,当设置为讲义时,输出文件的方向,默认0不改变,1横向,2纵向 | 0 |
| pageorientation | int | 如果是Word,TXT,Excel,HTML,设定页面横向还是竖向,此参数会覆盖excelislandscape。默认0不变,1横向,2 竖向 | 0 |
| 网址网页相关(type传url, html, md等) | |||
| ismobileurl | int | 如果type是url,html,md,是否移动端显示。默认0:桌面端网页,1:移动端网页 | 0 |
| urldesktopwidth | int | 如果type是url,html,md,桌面端显示。设定网页最大的宽度,默认:1440,最大:1920 | 0 |
| htmlpagemargin | string | 如果type是url,html,md,生成的页面边距。输入的是字符串,按照顺序:left top right bottom。单位可以是:px,in,cm,mm。例如左上右下分别是1px,2px,3px,4px,传的字符串就是:1px 2px 3px 4px。默认值:左右0,上下各1cm | 空 |
| urlwait | int | 如果type是url,停留一段时间再抓取页面,单位秒。默认0:不停留,最大30。比如10就是延迟10秒 | 0 |
| 输入EPUB相关(type传epub等) | |||
| epubfontsize | int | 如果type是epub等,输出的字体大小(单位pt,磅)。默认0自动 | 0 |
| epublineheight | int | 如果type是epub等,输出的行高(单位百分比)。例如120表示行高是字体大小的120%。默认0自动 | 0 |
| epubpagesize | string | 如果type是epub等,输出的页面自定义大小(单位厘米)。此参数如果设置会覆盖pagesize。默认空自动。例如7.2x15.5 | 空 |
| epubmargin | string | 如果type是epub等,输出的页面边距(单位pt,磅)。默认空自动。页边距格式:左 上 右 下,用空格分隔。例如5 5 5 5 | 空 |
| 输入CAD文件相关(源文件dwg, dwf) | |||
| cadlayer | int | 如果是CAD文件,是否生成Layer层,默认0否,1是 | 0 |
| cadisdisplay | int | 如果是CAD文件,是否按照Display显示,默认0不按照,1按照Display | 0 |
| cadquality | int | 如果是CAD文件,生成的文件品质,默认3。取值从1-5品质从低到高。 | 3 |
| caddetectempty | int | 如果是CAD文件,是否删除空页,默认0不删除,1删除。 | 0 |
| 其他 | |||
| password | string | 源文件的密码,支持有密码的PDF,Word,PPT,Excel文件类型,默认空无密码 | 空 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见 回调URL | 空 |
请求示例:
- 例1: 把word文件转为每页一图
{"input": ["http://xxx.docx"]}
- 例2: 把2张图片转为长图
{"input": ["http://xxx.jpg", "http://xxx.png"], "outtype": 2}
- 例3: 把Excel文件转为动图,并只包含有内容的单元格,加上水印"度慧科技"
{"input": ["http://xxx.xlsx"], "exceluseprintarea": 2, "watermark": "度慧科技", "outtype": 3}
- 例4: 把 Excel 文件转为每页一图,并将每张工作表调整为一页
{"input": ["http://xxx.xlsx"], "excelpagefitmode": 2}
*返回数据结构【异步】:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| code | number | 是 | 10000:请求成功 |
| msg | string | 是 | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| token | string | 是 | 用于查询结果接口 |
返回示例(成功状态)【异步】:
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态)【异步】:
{
"code":40001,
"msg":"ParmNotRight"
}
同步调用
同步调用的最大返回时间是60秒,如果60秒内转换结束则直接返回结果。否则会返回token,之后和异步方式一样可以调用查询结果接口查询该token的转换结果。所以同步调用如果传入的文件过大,无法保证在60秒内结束,则转为异步流程。
返回数据结构【同步】:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| code | number | 是 | 10000:请求成功 |
| msg | string | 是 | |
| token | string | 是 | 请求的token |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| imageurls | 图片文件url数组 | string数组 | 否(status为Done时返回) | 转换出来的图片文件地址,http和https都支持 |
| count | 总数 | integer | 否(status为Done时返回) | 图片总数 |
| status | 状态 | string | 是 | Done:转换成功 Failed:转换失败 |
返回示例(成功状态)【同步】:
{
"code": 10000,
"msg": "",
"result": {
"count": 2,
"imageurls": ["https://file.duhuitech.com/o/xxx/xxx/1.jpg", "https://file.duhuitech.com/o/xxx/xxx/2.jpg"],
"status": "Done"
},
"token": "YOUR_CREDENTIAL"
}
返回示例(超时状态)【同步】:
{
"code": 40500,
"msg": "Timeout, query token later",
"token": "YOUR_CREDENTIAL"
}
查询结果
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| token | string | 调用转换接口拿到的token | 是 |
请求示例:
https://api.duhuitech.com/q?token=YOUR_TOKEN
无需签名,无调用次数限制
由于转换需要时间,文件越大页数越多,转换越久,故需要轮询查询接口来获得结果。查询频率可以是1s一次,也可以更长一些。 查询后先看status,如果是Done或Failed,则转换结束,停止轮询。如果是Doing或Pending,则继续轮询。
返回数据结构:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| code | number | 是 | 10000:请求成功 |
| msg | string | 是 | |
| token | string | 是 | 请求的token |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| status | 状态 | string | 是 | Pending:还未开始 Doing:正在转换 Done:转换成功 Failed:转换失败 |
| progress | 进度 | number(0.00 - 1.00) | 否(status为Doing时返回) | 比如0.88表示88% |
| imageurls | 图片文件地址 | string数组 | 否(status为Done时返回) | 转换出来的图片文件地址,http和https都支持 |
| count | 文件总数 | integer | 否(status为Done时返回) | 图片文件总数 |
| reason | 失败原因 | string | 否(status为Failed时可能返回) | 转换失败的原因 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"progress":0.02,
"status":"Doing"
}
}
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"status":"Done",
"imageurls":["https://file.duhuitech.com/o/xxx/1.jpg", "https://file.duhuitech.com/o/xxx/2.jpg"],
"count":10
}
}
返回示例(失败状态):
{
"code":40000,
"msg":"No such token"
}
备注:
- 文件url方式支持文件大小 1500M。
- 最大转换时长:1小时,超过时间未完成则自动失败。
- 转换完成后,下载链接有效时间:1小时。
上述最后2项有延长需求请联系客服:

回调URL:
用途: 客户可以自行部署服务器,系统转换结束后会调用客户提供的回调URL,直接发送转换结果,从而无需再轮询查询结果。
当设置了回调URL,转换结束后(无论成功失败),系统都会尝试调用该URL,具体如下:
以POST方式调用该URL,Header头中Content-Type: application/json
Body为JSON格式,内容和查询结果的结果相同,例如:
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"status":"Done",
"imageurls":["https://file.duhuitech.com/o/xxx/1.jpg", "https://file.duhuitech.com/o/xxx/2.jpg"],
"count":10
}
}
服务端收到该POST后需在10秒内返回HTTP STATUS CODE 200,视为调用成功,否则系统认为回调失败,会再次尝试。规则如下:
系统共计最多会调用3次回调URL,如果第一次失败,则等待3秒后尝试第二次,如果第二次失败,则等待5秒后尝试第三次,如果第三次失败,则不再尝试。
回调URL超时时间10秒。
关于下载转换后的文件需支持302跳转
接口返回的下载地址(如 fileurl / fileurls)会经 HTTP 302 跳转到实际文件。浏览器会自动跟随。
以下方式默认会跟随跳转,一般无需额外配置:
wget、Python requests / urllib、Node.js axios / got / fetch、Java OkHttp / HttpURLConnection、Go net/http、C# HttpClient、PHP file_get_contents、Objective-C / Swift NSURLSession / URLSession(含 Alamofire)
少数默认不跟随,需手动打开:
curl:加-L,如curl -L -o out.bin "下载地址"- Java
java.net.http.HttpClient:设置.followRedirects(HttpClient.Redirect.NORMAL) - PHP
curl扩展:设置CURLOPT_FOLLOWLOCATION => true
若只拿到 302 响应、本地没有文件内容,多半是未跟随跳转,按上面说明打开对应选项即可。
阿里云独有部分:
支持从阿里云OSS内网直接下载文件,目前支持的是上海地区的阿里云OSS内网:
oss-cn-shanghai-internal.aliyuncs.com
文档转换GET或多张图片转换POST里的url地址包含上述域名则自动支持
错误码表:
返回的code如果是10000,代表成功,其余是失败
| JSON里返回的code | 错误信息 |
|---|---|
| 40000 | 通用错误 |
| 40001 | 参数错误 |
| 40002 | 参数不符合规范 |
| 40500 | 同步调用超时 |
附录:阿里签名方式
参考链接:
https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/use-cases/call-apis
在调用API商品时,首先您需要了解采用哪种API认证方式,云市场API商品的认证方式主要有以下两种方式。两种方式可同时使用,您可以根据不同情况来选择。
简单身份认证(AppCode)
签名认证
简单身份认证(AppCode)
简单认证(AppCode)调用API,有两种方式,一种是将AppCode放在Header中进行调用,一种是将AppCode放在Query参数中进行调用。
方式一:将AppCode放在Header中
在请求Header中添加一个Authorization参数。
Authorization字段的值的格式为APPCODE + 半角空格 +APPCODE值。格式如下:
Authorization:APPCODE AppCode值
示例:
Authorization:APPCODE YOUR_CREDENTIAL
方式二:将AppCode放在Query中
在请求Query中添加AppCode参数(同时支持appcode , appCode , APPCODE , APPCode四种写法)。
AppCode参数的值为AppCode的值。
示例:
http://www.aliyum.com?AppCode=YOUR_CREDENTIAL
签名认证
比较复杂,推荐用阿里自己的SDK来调用,参考链接:https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/user-guide/use-digest-authentication-to-call-an-api
附录:旧v1接口
文档转换GET_v1
将文档下载地址url转换为图片,type是源文档的type,比如要把docx转为长图,type就是docx,outtype就是2
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string | 文件url,支持http(s),ftp开头,需要URL Encoding | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| type | string | 要转换的原始文件扩展名,如果不传,则取url中的扩展名,注意如果获取失败会导致转换异常或出错 | 否 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,每页一图宽高最大20000。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是每页一个图或长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| ismobileurl | int | 如果type是“url”才有效,抓取的网页是否移动端显示。默认0:桌面端网页,1:移动端网页 | 否 |
| urlmargin | string | 如果type是url,生成的页面边距。输入的是URLEncoding后的字符串,按照顺序:left top right bottom。单位可以是:px,in,cm,mm。例如左上右下分别是1px,2px,3px,4px,传的字符串就是:1px%202px%203px%204px。默认值:左右0,上下各1cm | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用,2不使用且只显示有内容的区域 | 否 |
| excelpagesize | int | 如果是Excel文件,设定页面大小,默认A4。0:A4,1:A3,2:A4,3:A5,4:B4,5:B5,6:Letter,7:Legal,8:Tabloid,9:Ledger | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| powerpointoutputtype | int | 如果是PPT文件,设定导出样式,默认幻灯片。0:幻灯片,0以上是讲义模式:1:每页一个幻灯片,2:每页二个幻灯片,3:每页三个幻灯片,4:每页四个幻灯片,5:每页六个幻灯片,6:每页九个幻灯片 | 否 |
| powerpointhandoutorder | int | 如果是PPT文件,当设置为讲义时,设定顺序,默认0水平,1垂直 | 否 |
| powerpointhandoutorientation | int | 如果是PPT文件,当设置为讲义时,输出文件的方向,默认0不改变,1横向,2纵向 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效,需要URL Encoding | 否 |
| watermarkfontsize | int | 水印的字体大小,默认24pt | 否 |
| watermarkfontcolor | string | 水印的颜色,输入颜色码,默认黑色#000000,必须7位,需要URL Encoding | 否 |
| watermarkfontalpha | int | 水印的透明度,取值范围1-100,越小越透明,默认20 | 否 |
| watermarkstyle | int | 水印的样式,默认0:文档中央一个水印;1: 文档铺满水印 | 否 |
| password | string | 源文件的密码,支持有密码的PDF,Word,PPT,Excel文件类型,默认空无密码 | 否 |
| pageindexes | string | 如果源文件是PDF文件,指定转换的PDF页数,默认空全部页,例如:1,3,5-7就是1,3,5,6,7共5页 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,需要URL Encoding,详细见 回调URL | 否 |
请求示例:
https://all2img.market.alicloudapi.com/v1/convert?url=https%3a%2f%2fxxx%2fxxx.docx&outtype=2
将所在url地址的docx文件转为长图,type就是源文件的type,这个例子里就是docx,outtype就是2(长图)
必须签名才能调用成功,签名见阿里签名规则:
https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/use-cases/call-apis
支持多种文件格式,具体如下(type可传入如下格式):
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
| 网址网页 | url | 网址,例如:https://www.duhuitech.com |
返回数据结构:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| code | number | 是 | 10000:请求成功 |
| msg | string | 是 | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| token | string | 是 | 用于查询结果接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
文档转换POST_v1
直接将单个文档POST到服务器,大小限制8M
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| file | file | 要转换的文档,Content-Type使用multipart/form-data,最大8M | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| type | string | 要转换的原始文件扩展名,如果不传,则取file中的文件扩展名,注意如果获取失败会导致转换异常或出错 | 否 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,每页一图宽高最大20000。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是每页一个图或长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用,2不使用且只显示有内容的区域 | 否 |
| excelpagesize | int | 如果是Excel文件,设定页面大小,默认A4。0:A4,1:A3,2:A4,3:A5,4:B4,5:B5,6:Letter,7:Legal,8:Tabloid,9:Ledger | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| powerpointoutputtype | int | 如果是PPT文件,设定导出样式,默认幻灯片。0:幻灯片,0以上是讲义模式:1:每页一个幻灯片,2:每页二个幻灯片,3:每页三个幻灯片,4:每页四个幻灯片,5:每页六个幻灯片,6:每页九个幻灯片 | 否 |
| powerpointhandoutorder | int | 如果是PPT文件,当设置为讲义时,设定顺序,默认0水平,1垂直 | 否 |
| powerpointhandoutorientation | int | 如果是PPT文件,当设置为讲义时,输出文件的方向,默认0不改变,1横向,2纵向 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效,需要URL Encoding | 否 |
| watermarkfontsize | int | 水印的字体大小,默认24pt | 否 |
| watermarkfontcolor | string | 水印的颜色,输入颜色码,默认黑色#000000,必须7位,需要URL Encoding | 否 |
| watermarkfontalpha | int | 水印的透明度,取值范围1-100,越小越透明,默认20 | 否 |
| watermarkstyle | int | 水印的样式,默认0:文档中央一个水印;1: 文档铺满水印 | 否 |
| password | string | 源文件的密码,支持有密码的PDF,Word,PPT,Excel文件类型,默认空无密码 | 否 |
| pageindexes | string | 如果源文件是PDF文件,指定转换的PDF页数,默认空全部页,例如:1,3,5-7就是1,3,5,6,7共5页 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见 回调URL | 否 |
请求示例:
https://all2img.market.alicloudapi.com/v1/convert_post
Header中的Content-Type必须是multipart/form-data
必须签名才能调用成功,签名见阿里签名规则:
https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/use-cases/call-apis
支持多种文件格式,type可传入如下格式:
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
返回数据结构:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| code | number | 是 | 10000:请求成功 |
| msg | string | 是 | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| token | string | 是 | 用于查询结果接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
多张图片转换POST_v1
将多张图片转换为长图/动图,url传入多张图片的地址,传入非图片格式无效
Header中的Content-Type传入application/json
POST Body传入JSON,格式如下:
请求参数BODY:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string数组 | 要转换的图片URL数组,支持http(s),ftp开头 | 是 |
| type | string | 固定传img | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,每页一图宽高最大20000。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效,需要URL Encoding | 否 |
| watermarkfontsize | int | 水印的字体大小,默认24pt | 否 |
| watermarkfontcolor | string | 水印的颜色,输入颜色码,默认黑色#000000,必须7位,需要URL Encoding | 否 |
| watermarkfontalpha | int | 水印的透明度,取值范围1-100,越小越透明,默认20 | 否 |
| watermarkstyle | int | 水印的样式,默认0:文档中央一个水印;1: 文档铺满水印 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见 回调URL | 否 |
请求示例:
https://all2img.market.alicloudapi.com/v1/convert
传入的Body为JSON格式,如下:
{"url": ["http://xxx/xxx1.png", "http://xxx/xxx2.png"], "type": "img"}
必须签名才能调用成功,签名见阿里签名规则:
https://help.aliyun.com/zh/api-gateway/traditional-api-gateway/use-cases/call-apis
支持几乎所有图片格式
返回数据结构:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| code | number | 是 | 10000:请求成功 |
| msg | string | 是 | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|
| token | string | 是 | 用于查询结果接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
概述
2种转换方式
- 单一文档转为图片,文档是一个下载链接,用HTTP GET方式,见:文档转换GET
- 多个图片转为图片,文档是多个下载链接,用HTTP POST方式,见:多张图片转换POST
基本用法
由于转换需要时间,文件越大页数越多,转换越久,故系统采用异步的方式获得转换结果。调用转换接口后会获得token,随后有2种方式查询转换结果:
API调用需要签名,详细见文档附录:百度签名
文档转换GET
将文档下载地址url转换为图片,type是源文档的type,比如要把docx转为长图,type就是docx,outtype就是2
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string | 文件url,支持http(s),ftp开头,需要URL Encoding | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| type | string | 要转换的原始文件扩展名,如果不传,则取url中的扩展名,注意如果获取失败会导致转换异常或出错 | 否 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是每页一个图或长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| ismobileurl | int | 如果type是“url”才有效,抓取的网页是否移动端显示。默认0:桌面端网页,1:移动端网页 | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用,2不使用且只显示有内容的区域 | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| password | string | 源文件的密码,支持有密码的PDF,Word,PPT,Excel文件类型,默认空无密码 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,需要URL Encoding,详细见回调URL | 否 |
请求示例:
https://all2img.api.bdymkt.com/v1/convert?url=https%3a%2f%2fxxx%2fxxx.docx&outtype=2
将所在url地址的docx文件转为长图,type就是源文件的type,这个例子里就是docx,outtype就是2(长图)
必须签名才能调用成功,签名见百度签名规则:
https://cloud.baidu.com/doc/APIGW/s/Ljx2m1qc4
支持多种文件格式,具体如下(type可传入如下格式):
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
| 网址网页 | url | 网址,例如:https://www.duhuitech.com |
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
多张图片转换POST
将多张图片转换为长图/动图,url传入多张图片的地址,传入非图片格式无效
Header中的Content-Type传入application/json
POST Body传入JSON,格式如下:
请求参数BODY:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string数组 | 要转换的图片URL数组,支持http(s),ftp开头 | 是 |
| type | string | 固定传img | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见回调URL | 否 |
请求示例:
https://all2img.api.bdymkt.com/v1/convert
传入的Body为JSON格式,如下:
{ "url": [ "http://xxx/xxx1.png","http://xxx/xxx2.png" ], "type": "img" }
必须签名才能调用成功,签名见百度签名规则:
https://cloud.baidu.com/doc/APIGW/s/Ljx2m1qc4
支持几乎所有图片格式
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
查询 QUERY
请求参数:
| 参数 | 类型及范围 | 备注 | 是否必须发送 |
|---|---|---|---|
| token | string | 是 |
请求示例:
https://api.duhuitech.com/q?token=YOUR_TOKEN
无需签名,无调用次数限制
由于转换需要时间,文件越大页数越多,转换越久,故需要轮询查询接口来获得结果。查询频率可以是1s一次,也可以更长一些。查询后先看status,如果是Done或Failed,则转换结束,停止轮询。如果是Doing或Pending,则继续轮询。
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| token | string | 是 | 请求的token | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| status | 状态 | string | 是 | Pending:还未开始 Doing:正在转换 Done:转换成功 Failed:转换失败 |
| progress | 进度 | number(0.00 - 1.00) | 否(status为Doing时返回) | 比如0.88表示88% |
| imageurls | 图片文件地址 | string数组 | 否(status为Done时返回) | 转换出来的图片文件地址,http和https都支持 |
| count | 文件总数 | integer | 否(status为Done时返回) | 图片文件总数 |
| reason | 失败原因 | string | 否(status为Failed时可能返回) | 转换失败的原因 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"progress":0.02,
"status":"Doing"
}
}
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"status":"Done",
"imageurls":[
"https://file.duhuitech.com/o/xxx/1.jpg",
"https://file.duhuitech.com/o/xxx/2.jpg"
],
"count":2
}
}
返回示例(失败状态):
{
"code":40000,
"msg":"No such token"
}
注意:
- 上传文件大小不能超过1500M。
- 最大转换时长:1小时,超过时间未完成则自动失败。
- 转换完成后,下载链接有效时间:1小时。
回调URL:
用途:客户可以自行部署服务器,系统转换结束后会调用客户提供的回调URL,直接发送转换结果,从而无需再轮询Query。
当设置了回调URL,转换结束后(无论成功失败),系统都会尝试调用该URL,具体如下:
以POST方式调用该URL,Header头中Content-Type: application/json
Body为JSON格式,内容和Query的结果相同,例如:
{"code":10000,"msg":"","token":"YOUR_CREDENTIAL","result":{"status":"Done","imageurls":["https://file.duhuitech.com/o/xxx/1.jpg","https://file.duhuitech.com/o/xxx/2.jpg"],"count":2}}
服务端收到该POST后需在10秒内返回HTTP STATUS CODE 200,视为调用成功,否则系统认为回调失败,会再次尝试。规则如下:
系统共计最多会调用3次回调URL,如果第一次失败,则等待3秒后尝试第二次,如果第二次失败,则等待5秒后尝试第三次,如果第三次失败,则不再尝试。
回调URL超时时间10秒。
关于下载转换后的文件需支持302跳转
接口返回的下载地址(如 fileurl / fileurls)会经 HTTP 302 跳转到实际文件。浏览器会自动跟随。
以下方式默认会跟随跳转,一般无需额外配置:
wget、Python requests / urllib、Node.js axios / got / fetch、Java OkHttp / HttpURLConnection、Go net/http、C# HttpClient、PHP file_get_contents、Objective-C / Swift NSURLSession / URLSession(含 Alamofire)
少数默认不跟随,需手动打开:
curl:加-L,如curl -L -o out.bin "下载地址"- Java
java.net.http.HttpClient:设置.followRedirects(HttpClient.Redirect.NORMAL) - PHP
curl扩展:设置CURLOPT_FOLLOWLOCATION => true
若只拿到 302 响应、本地没有文件内容,多半是未跟随跳转,按上面说明打开对应选项即可。
错误码表:
| JSON里返回的code | 错误信息 |
|---|---|
| 40000 | 通用错误 |
| 40001 | 参数错误 |
| 40002 | 参数不符合规范 |
附录:百度签名方式
参考链接:
https://cloud.baidu.com/doc/APIGW/s/Ljx2m1qc4
在调用API商品时,首先您需要了解采用哪种API认证方式,云市场API商品的认证方式主要有以下两种方式。两种方式可同时使用,您可以根据不同情况来选择。
- 简单身份认证(AppCode)
- 签名认证
简单身份认证(AppCode)
简单认证(AppCode)调用API,将AppCode放在Header中
在请求Header中添加一个X-Bce-Signature参数。
示例:
X-Bce-Signature: AppCode/YOUR_APPCODE
签名认证
比较复杂,推荐用百度自己的SDK来调用,参考链接:https://cloud.baidu.com/doc/Reference/s/njwvz1yfu
概述
3种转换方式
- 单一文档转为图片,文档是一个下载链接,用HTTP GET方式,见:文档转换GET
- 单一文档转为图片,文档POST到服务器,用HTTP POST方式,见:文档转换POST
- 多个图片转为图片,文档是多个下载链接,用HTTP POST方式,见:多张图片转换POST
基本用法
由于转换需要时间,文件越大页数越多,转换越久,故系统采用异步的方式获得转换结果。调用转换接口后会获得token,随后有2种方式查询转换结果:
API调用需要签名,详细见华为官方签名:
https://support.huaweicloud.com/usermanual-apig/apig-ug-0011.html
文档转换GET
将文档下载地址url转换为图片,type是源文档的type,比如要把docx转为长图,type就是docx,outtype就是2
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string | 文件url,支持http(s),ftp开头,需要URL Encoding | 是 |
| type | string | 要转换的文档扩展名,例如网页就是“url”,docx就是“docx” | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| ismobileurl | int | 如果type是“url”才有效,抓取的网页是否移动端显示。默认0:桌面端网页,1:移动端网页 | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用 | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,需要URL Encoding,详细见回调URL | 否 |
请求示例:
http://all2img.apistore.huaweicloud.com/v1/convert?url=https%3a%2f%2fxxx%2fxxx.docx&type=docx&outtype=2
将所在url地址的docx文件转为长图,type就是源文件的type,这个例子里就是docx,outtype就是2(长图)
必须签名才能调用成功,签名见华为签名规则:
支持多种文件格式,具体如下(type可传入如下格式):
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
| 网址网页 | url | 网址,例如:https://www.duhuitech.com |
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
文档转换POST
直接将单个文档POST到服务器,大小限制12M
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| file | file | 要转换的文档,Content-Type使用multipart/form-data,最大12M | 是 |
| type | string | 要转换的文档扩展名,例如docx就是“docx” | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用 | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见回调URL | 否 |
请求示例:
http://all2img.apistore.huaweicloud.com/v1/convert_post
Header中的Content-Type必须是multipart/form-data
必须签名才能调用成功,签名见华为签名规则:
支持多种文件格式,具体如下(type可传入如下格式):
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
多张图片转换POST
将多张图片转换为长图/动图,url传入多张图片的地址,传入非图片格式无效
Header中的Content-Type传入application/json
POST Body传入JSON,格式如下:
请求参数BODY:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string数组 | 要转换的图片URL数组,支持http(s),ftp开头 | 是 |
| type | string | 固定传img | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见回调URL | 否 |
请求示例:
http://all2img.apistore.huaweicloud.com/v1/convert
传入的Body为JSON格式,如下:
{ "url": [ "http://xxx/xxx1.png","http://xxx/xxx2.png" ], "type": "img" }
必须签名才能调用成功,签名见华为签名规则:
支持几乎所有图片格式
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
查询 QUERY
请求参数:
| 参数 | 类型及范围 | 备注 | 是否必须发送 |
|---|---|---|---|
| token | string | 是 |
请求示例:
https://api.duhuitech.com/q?token=YOUR_TOKEN
无需签名,无调用次数限制
由于转换需要时间,文件越大页数越多,转换越久,故需要轮询查询接口来获得结果。查询频率可以是1s一次,也可以更长一些。查询后先看status,如果是Done或Failed,则转换结束,停止轮询。如果是Doing或Pending,则继续轮询。
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| token | string | 是 | 请求的token | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| status | 状态 | string | 是 | Pending:还未开始 Doing:正在转换 Done:转换成功 Failed:转换失败 |
| progress | 进度 | number(0.00 - 1.00) | 否(status为Doing时返回) | 比如0.88表示88% |
| imageurls | 图片文件地址 | string数组 | 否(status为Done时返回) | 转换出来的图片文件地址,http和https都支持 |
| count | 文件总数 | integer | 否(status为Done时返回) | 图片文件总数 |
| reason | 失败原因 | string | 否(status为Failed时可能返回) | 转换失败的原因 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"progress":0.02,
"status":"Doing"
}
}
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"status":"Done",
"imageurls":[
"https://file.duhuitech.com/o/xxx/1.jpg",
"https://file.duhuitech.com/o/xxx/2.jpg"
],
"count":2
}
}
返回示例(失败状态):
{
"code":40000,
"msg":"No such token"
}
注意:
- 上传文件大小不能超过1500M。
- 最大转换时长:1小时,超过时间未完成则自动失败。
- 转换完成后,下载链接有效时间:1小时。
回调URL:
用途:客户可以自行部署服务器,系统转换结束后会调用客户提供的回调URL,直接发送转换结果,从而无需再轮询Query。
当设置了回调URL,转换结束后(无论成功失败),系统都会尝试调用该URL,具体如下:
以POST方式调用该URL,Header头中Content-Type: application/json
Body为JSON格式,内容和Query的结果相同,例如:
{"code":10000,"msg":"","token":"YOUR_CREDENTIAL","result":{"status":"Done","imageurls":["https://file.duhuitech.com/o/xxx/1.jpg","https://file.duhuitech.com/o/xxx/2.jpg"],"count":2}}
服务端收到该POST后需在10秒内返回HTTP STATUS CODE 200,视为调用成功,否则系统认为回调失败,会再次尝试。规则如下:
系统共计最多会调用3次回调URL,如果第一次失败,则等待3秒后尝试第二次,如果第二次失败,则等待5秒后尝试第三次,如果第三次失败,则不再尝试。
回调URL超时时间10秒。
关于下载转换后的文件需支持302跳转
接口返回的下载地址(如 fileurl / fileurls)会经 HTTP 302 跳转到实际文件。浏览器会自动跟随。
以下方式默认会跟随跳转,一般无需额外配置:
wget、Python requests / urllib、Node.js axios / got / fetch、Java OkHttp / HttpURLConnection、Go net/http、C# HttpClient、PHP file_get_contents、Objective-C / Swift NSURLSession / URLSession(含 Alamofire)
少数默认不跟随,需手动打开:
curl:加-L,如curl -L -o out.bin "下载地址"- Java
java.net.http.HttpClient:设置.followRedirects(HttpClient.Redirect.NORMAL) - PHP
curl扩展:设置CURLOPT_FOLLOWLOCATION => true
若只拿到 302 响应、本地没有文件内容,多半是未跟随跳转,按上面说明打开对应选项即可。
错误码表:
| JSON里返回的code | 错误信息 |
|---|---|
| 40000 | 通用错误 |
| 40001 | 参数错误 |
| 40002 | 参数不符合规范 |
概述
3种转换方式
- 单一文档转为图片,文档是一个下载链接,用HTTP GET方式,见:文档转换GET
- 单一文档转为图片,文档POST到服务器,用HTTP POST方式,见:文档转换POST
- 多个图片转为图片,文档是多个下载链接,用HTTP POST方式,见:多张图片转换POST
基本用法
由于转换需要时间,文件越大页数越多,转换越久,故系统采用异步的方式获得转换结果。调用转换接口后会获得token,随后有2种方式查询转换结果:
API调用需要签名,详细见文档附录:腾讯签名规则
由于腾讯云网关迁移的关系,故新老用户拿到的 SecretID 不同,老用户SecretID以AKID开头的,请使用V1域名和签名。新用户使用v2域名和签名。注意:v1和v2调用api的域名不一样。
文档转换GET
将文档下载地址url转换为图片,type是源文档的type,比如要把docx转为长图,type就是docx,outtype就是2
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string | 文件url,支持http(s),ftp开头,需要URL Encoding | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| type | string | 要转换的原始文件扩展名,如果不传,则取url中的扩展名,注意如果获取失败会导致转换异常或出错 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是每页一个图或长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| ismobileurl | int | 如果type是“url”才有效,抓取的网页是否移动端显示。默认0:桌面端网页,1:移动端网页 | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用,2不使用且只显示有内容的区域 | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| password | string | 源文件的密码,支持有密码的PDF,Word,PPT,Excel文件类型,默认空无密码 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,需要URL Encoding,详细见回调URL | 否 |
请求示例:
v2域名:
https://ap-shanghai.cloudmarket-apigw.com/service-dlj3r44n/v1/convert?url=https%3a%2f%2fxxx%2fxxx.docx
v1域名:
https://service-dlj3r44n-1256652084.sh.apigw.tencentcs.com/release/v1/convert?url=https%3a%2f%2fxxx%2fxxx.docx&outtype=2
将所在url地址的docx文件转为长图,type就是源文件的type,这个例子里就是docx,outtype就是2(长图)
必须签名才能调用成功,签名见腾讯签名规则:
支持多种文件格式,具体如下(type可传入如下格式):
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
| 网址网页 | url | 网址,例如:https://www.duhuitech.com |
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
文档转换POST
直接将单个文档POST到服务器,大小限制10M
请求参数:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| file | file | 要转换的文档,Content-Type使用multipart/form-data,最大10M | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| type | string | 要转换的原始文件扩展名,如果不传,则取file中的文件扩展名,注意如果获取失败会导致转换异常或出错 | 否 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是每页一个图或长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| excelislandscape | int | 如果是Excel文件,是否横屏,默认0否(竖屏),1是 | 否 |
| exceliscenter | int | 如果是Excel文件,是否居中,默认0否,1横竖居中,2仅横向居中,3仅纵向居中 | 否 |
| excelmargin | int | 如果是Excel文件,四边的边距,默认10px,单位是像素 | 否 |
| excelsheetindex | int | 如果是Excel文件,指定转换的Sheet索引,默认0:全部,第一个sheet就是1,以此类推 | 否 |
| excelnotshowgridlines | int | 如果是Excel文件,不显示网格线,默认0显示,1不显示 | 否 |
| exceluseprintarea | int | 如果是Excel文件,是否使用打印区域,默认0不使用,1使用,2不使用且只显示有内容的区域 | 否 |
| wordshowmarkup | int | 如果是Word文件,是否显示审阅标记,默认0不显示,1显示 | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| password | string | 源文件的密码,支持有密码的PDF,Word,PPT,Excel文件类型,默认空无密码 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见回调URL | 否 |
请求示例:
v2域名:
https://ap-shanghai.cloudmarket-apigw.com/service-dlj3r44n/v1/convert_post
v1域名:
https://service-dlj3r44n-1256652084.sh.apigw.tencentcs.com/release/v1/convert_post
Header中的Content-Type必须是multipart/form-data
必须签名才能调用成功,签名见腾讯签名规则:
支持多种文件格式,具体如下(type可传入如下格式):
| 类型 | 扩展名(type取值) | 备注 |
|---|---|---|
| PDF文件 | ||
| 微软Office文档 | doc, docx, ppt, pptx, xls, xlsx, pot, pps, ppsx, csv | |
| WPS文档 | wps, wpt, dps, dpt, et, ett | |
| 苹果iWork文档 | pages, key, numbers | |
| 开放版式文档 | ofd | |
| 电子刊物 | caj, nh, kdh | |
| 电子书 | epub, chm, mobi, azw, azw3, fb2, cbr, cbz, djvu | |
| Markdown | md | |
| SVG | svg | |
| CAD文档 | dwg, dxf, dwt, dws, dwf, dwfx, dxb, dgn, plt, cf2, cgm | |
| 3D模型 | obj, 3ds, stl, gltf, glb, fbx, dae, ifc, step, stp, iges, igs, fcstd, brep, ply | 静态预览(平面示意图,按 6 个视角展示:等轴测 / 前 / 右 / 顶 / 后 / 左,便于快速查看模型外观;非可旋转的交互式 3D) |
| Figma和Sketch文档 | fig, sketch | |
| 网页文件 | html, htm, mht, eml | |
| 图片文件 | 几乎所有格式例如png, jpg, jpeg, gif, tif, tiff, bmp, webp, ai等 | type可以统一传img,代表一切图片 |
| 文本文件 | txt, rtf, java, js, c, cpp, jsp, css, xml, properties, log, | type可以统一传txt,代表一切文本 |
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
多张图片转换POST
将多张图片转换为长图/动图,url传入多张图片的地址,传入非图片格式无效
Header中的Content-Type传入application/json
POST Body传入JSON,格式如下:
请求参数BODY:
| 参数 | 类型 | 备注 | 是否必须发送 |
|---|---|---|---|
| url | string数组 | 要转换的图片URL数组,支持http(s),ftp开头 | 是 |
| type | string | 固定传img | 是 |
| outtype | int | 输出类型:1:每页一个图;2:长图;3:动图 | 是 |
| imagesize | int | 图片大小。 如果outtype是1(每页一个图),该值是每个图最大的宽或高。 如果outtype是2(长图),该值是长图的宽。 如果outtype是3(动图),该值是动图最大的宽或高。 默认是0,自动。长图,动图宽最大2000,其他图宽高最大4096。 |
否 |
| imageduration | int | 动图多少秒切换下一张。如果outtype是3(动图)才有效,单位是秒,比如传入10就是每隔10s切换一张图 | 否 |
| imageformat | string | 如果输出是长图,输出的图片格式。默认空:jpg,可填入png | 否 |
| watermark | string | 添加水印,字符个数最大10个,仅对非图片文件有效 | 否 |
| callbackurl | string | 回调URL,转换结束后,会回调该URL,详细见回调URL | 否 |
请求示例:
v2域名:
https://ap-shanghai.cloudmarket-apigw.com/service-dlj3r44n/v1/convert
v1域名:
https://service-dlj3r44n-1256652084.sh.apigw.tencentcs.com/release/v1/convert
传入的Body为JSON格式,如下:
{ "url": [ "http://xxx/xxx1.png","http://xxx/xxx2.png" ], "type": "img" }
必须签名才能调用成功,签名见腾讯签名规则:
支持几乎所有图片格式
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| token | string | 是 | 用于query接口 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"result":{"token":"YOUR_CREDENTIAL"}
}
返回示例(失败状态):
{
"code":40001,
"msg":"ParmNotRight"
}
查询 QUERY
请求参数:
| 参数 | 类型及范围 | 备注 | 是否必须发送 |
|---|---|---|---|
| token | string | 是 |
请求示例:
https://api.duhuitech.com/q?token=YOUR_TOKEN
无需签名,无调用次数限制
由于转换需要时间,文件越大页数越多,转换越久,故需要轮询查询接口来获得结果。查询频率可以是1s一次,也可以更长一些。查询后先看status,如果是Done或Failed,则转换结束,停止轮询。如果是Doing或Pending,则继续轮询。
返回数据结构:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| code | number | 是 | 10000:请求成功 | |
| msg | string | 是 | ||
| token | string | 是 | 请求的token | |
| result | Dictionary | 否 | 成功后返回 |
result:
| 名称 | 含义 | 类型及范围 | 是否必须返回 | 备注 |
|---|---|---|---|---|
| status | 状态 | string | 是 | Pending:还未开始 Doing:正在转换 Done:转换成功 Failed:转换失败 |
| progress | 进度 | number(0.00 - 1.00) | 否(status为Doing时返回) | 比如0.88表示88% |
| imageurls | 图片文件地址 | string数组 | 否(status为Done时返回) | 转换出来的图片文件地址,http和https都支持 |
| count | 文件总数 | integer | 否(status为Done时返回) | 图片文件总数 |
| reason | 失败原因 | string | 否(status为Failed时可能返回) | 转换失败的原因 |
返回示例(成功状态):
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"progress":0.02,
"status":"Doing"
}
}
{
"code":10000,
"msg":"",
"token":"YOUR_CREDENTIAL",
"result":
{
"status":"Done",
"imageurls":[
"https://file.duhuitech.com/o/xxx/1.jpg",
"https://file.duhuitech.com/o/xxx/2.jpg"
],
"count":2
}
}
返回示例(失败状态):
{
"code":40000,
"msg":"No such token"
}
注意:
- 上传文件大小不能超过1500M。
- 最大转换时长:1小时,超过时间未完成则自动失败。
- 转换完成后,下载链接有效时间:1小时。
回调URL:
用途:客户可以自行部署服务器,系统转换结束后会调用客户提供的回调URL,直接发送转换结果,从而无需再轮询Query。
当设置了回调URL,转换结束后(无论成功失败),系统都会尝试调用该URL,具体如下:
以POST方式调用该URL,Header头中Content-Type: application/json
Body为JSON格式,内容和Query的结果相同,例如:
{"code":10000,"msg":"","token":"YOUR_CREDENTIAL","result":{"status":"Done","imageurls":["https://file.duhuitech.com/o/xxx/1.jpg","https://file.duhuitech.com/o/xxx/2.jpg"],"count":2}}
服务端收到该POST后需在10秒内返回HTTP STATUS CODE 200,视为调用成功,否则系统认为回调失败,会再次尝试。规则如下:
系统共计最多会调用3次回调URL,如果第一次失败,则等待3秒后尝试第二次,如果第二次失败,则等待5秒后尝试第三次,如果第三次失败,则不再尝试。
回调URL超时时间10秒。
关于下载转换后的文件需支持302跳转
接口返回的下载地址(如 fileurl / fileurls)会经 HTTP 302 跳转到实际文件。浏览器会自动跟随。
以下方式默认会跟随跳转,一般无需额外配置:
wget、Python requests / urllib、Node.js axios / got / fetch、Java OkHttp / HttpURLConnection、Go net/http、C# HttpClient、PHP file_get_contents、Objective-C / Swift NSURLSession / URLSession(含 Alamofire)
少数默认不跟随,需手动打开:
curl:加-L,如curl -L -o out.bin "下载地址"- Java
java.net.http.HttpClient:设置.followRedirects(HttpClient.Redirect.NORMAL) - PHP
curl扩展:设置CURLOPT_FOLLOWLOCATION => true
若只拿到 302 响应、本地没有文件内容,多半是未跟随跳转,按上面说明打开对应选项即可。
错误码表:
| JSON里返回的code | 错误信息 |
|---|---|
| 40000 | 通用错误 |
| 40001 | 参数错误 |
| 40002 | 参数不符合规范 |
附录:腾讯签名方式
腾讯云市场接口分V1和V2
新老用户拿到的 SecretID 不同,老用户SecretID以AKID开头的,请使用V1对应签名。新用户使用V2对应签名。新购用户都是V2签名。
V2签名:
https://cloud.tencent.com/document/product/306/57449
建议使用腾讯提供的各种语言的SDK,例如Java:
https://cloud.tencent.com/document/product/306/57449#Java
V1签名:
参考链接:
https://cloud.tencent.com/document/product/628/11782
建议使用腾讯提供的各种语言的SDK,例如Java:
