发起文档转换

更新时间不可用

发起一个文档转换任务。

POST
https://api.netless.link/v5/projector/tasks

注意

调用文档转换 API 前,请确保:

请求 Header

regionstring
必填

指定处理该请求的数据中心,取值如下:

  • cn-hz:中国杭州,服务区覆盖中国大陆地区及其他数据中心未覆盖的区域。

  • us-sv:美国硅谷,服务区覆盖北美洲、南美洲。

  • sg:新加坡,服务区覆盖新加坡、东亚、东南亚。

  • in-mum:印度孟买,服务区覆盖印度。

  • eu:欧洲(法兰克福),服务区覆盖欧洲。

tokenstring
必填

SDK Token,可以通过以下方式获取:

请求 Body

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 时生效。

webhookEndpointstring

Webhook 回调地址,一般为 app 服务端地址,用于接收服务端发送的转换任务进度等信息。传入该参数即可激活 Webhook 回调,接收来自服务端的文档转换进度和运行状态信息。Webhook 配置方式和签名验证详见接收文档转换 Webhook 事件。

注意

Webhook 回调有一定概率重复回调,为保证 app 服务端在接到相同响应时的处理方式保持一致,需要做好幂等处理。

webhookRetrynumber

Webhook 回调失败时的重试次数。

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:失败。

请求示例

Example Request
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"
}