发起文档转换
更新时间不可用
发起一个文档转换任务。
https://api.netless.link/v5/projector/tasks注意
调用文档转换 API 前,请确保:
-
已在声网控制台开启文档转图片或文档转网页服务并添加存储配置。详见开启互动白板配套服务。
-
已为待转换的文档生成一个公网可访问的 URL 地址。
regionstring指定处理该请求的数据中心,取值如下:
-
cn-hz:中国杭州,服务区覆盖中国大陆地区及其他数据中心未覆盖的区域。 -
us-sv:美国硅谷,服务区覆盖北美洲、南美洲。 -
sg:新加坡,服务区覆盖新加坡、东亚、东南亚。 -
in-mum:印度孟买,服务区覆盖印度。 -
eu:欧洲(法兰克福),服务区覆盖欧洲。
tokenstringSDK Token,可以通过以下方式获取:
-
在声网控制台生成用于测试的 SDK Token,详见获取互动白板项目的安全密钥。
-
调用服务端 RESTful API, 详见生成 SDK Token。
-
在 App 服务端用代码生成,详见在 App 服务端生成 Token。
resourcestring待转换的源文件 URL。
typestring转换任务类型,取值如下:
-
dynamic:动态文档转换,即文档转网页。 -
static:静态文档转换,即文档转图片。
previewboolean是否需要生成预览图:
-
true:是。 -
false:否。 该参数仅在type设为dynamic时生效。
scalenumber图片缩放比例。数值越大,图片越清晰。该参数仅在 type 设为 static 时生效。
outputFormatstring输出图片格式,取值如下:
-
png:PNG 格式。 -
jpg:JPG 格式。 -
jpeg:JPEG 格式。 -
qpdf:QPDF 格式。仅 PDF 文件(以%PDF开头的文件)支持转换为 QPDF 格式。你可以使用 @netless-app-pdfjs 插件展示到基于 Fastboard SDK 的互动白板 App 中。 该参数仅在type设为static时生效。
webhookEndpointstringWebhook 回调地址,一般为 app 服务端地址,用于接收服务端发送的转换任务进度等信息。传入该参数即可激活 Webhook 回调,接收来自服务端的文档转换进度和运行状态信息。Webhook 配置方式和签名验证详见接收文档转换 Webhook 事件。
注意
Webhook 回调有一定概率重复回调,为保证 app 服务端在接到相同响应时的处理方式保持一致,需要做好幂等处理。
webhookRetrynumberWebhook 回调失败时的重试次数。
imageCompressionLevelnumber动态转换输出图片的压缩等级,仅能传入以下值:
-
0:(默认)输出原图。 -
1:输出图片使用的最大颜色数量限制为 256。 -
2:输出图片使用的最大颜色数量限制为 192。 -
3:输出图片使用的最大颜色数量限制为 128。 -
4:输出图片使用的最大颜色数量限制为 64。 该参数仅在type设为dynamic时生效。
说明
通常,在保证画质不受明显影响的前提下,输出图片的体积最高可以压缩至原图的 10%。压缩图片体积可在弱网环境下改善转换后 PPT 的首次加载时间。
buildSpaboolean是否在转换完成后构建一个可独立渲染的单页应用程序 (SPA, Single-page Application):
-
true:(默认)构建 SPA 文件。文件为 HTML 格式,其中包含渲染 PPT 的所有资源,可用于单页预览,但服务器需要耗时(约 3 至 300 秒)下载所需资源和编译文件。 -
false:不构建 SPA 文件。
响应
若返回的状态码为 201 则表示请求成功。响应 Body 中包含本次请求的结果。
若返回的状态码不为 201 则表示请求失败。你可以参考响应状态码了解可能的原因。
响应 Body
uuidstring转换任务的 UUID,即转换任务的唯一标识符。
typestring转换任务类型,取值如下:
-
dynamic:动态文档转换,即文档转网页。 -
static:静态文档转换,即文档转图片。
statusstring转换任务的状态:
-
Waiting:等待转换。 -
Converting:转换中。 -
Finished:已完成。 -
Fail:失败。
请求示例
curl --request POST \
--url "https://api.netless.link/v5/projector/tasks" \
--header 'region: cn-hz' \
--header 'token: <string>' \
-H 'Content-Type: application/json' \
-d '{
"resource": "https://docs-test-xx.oss-cn-hangzhou.aliyuncs.com/xxx",
"type": "dynamic",
"preview": true,
"webhookEndpoint": "https://example.com/agoracallback",
"webhookRetry": 3,
"imageCompressionLevel": 0
}'响应示例
{
"uuid": "2fd2dxxxxx367e",
"type": "dynamic",
"status": "Waiting"
}