文档转码功能

通过阅读本章节,您将了解文档转码的相关功能与使用方法。文档转码功能可以实现将PPT、PPTX、PDF等文档格式转码为png及jpg格式,借助互动白板进行实时翻页、标注与共享展示,支持在 Web端、PC 端提交文件转码任务,将 ppt 和 pdf 等文档转码为各种清晰度的图片存储在云端,再在各客户端获取、下载使用或者删除转码后的文档。SDK提供文档上传(PC/Web)、下载、删除、查询等文档使用中的各类功能接口。

文档上传转码

转码文档上传接口。通过扩展的上传文件上传转码文件到服务器。如果上传成功,则等待结果通知。

    nim.sendFile({
      // 转码支持
      transcode: 'jpg',
      scene: 'chatroom',
      to: roomId, //聊天室id
      type: 'file',
      fileInput: fileInput, //上传节点
      beginupload(data) {
        // - 如果开发者传入 fileInput, 在此回调之前不能修改 fileInput
        // - 在此回调之后可以取消图片上传, 此回调会接收一个参数 `upload`, 调用 `upload.abort();` 来取消文件上传
        const { fileInputName, transtype, docId } = data.options;
        docIdDone = docId;
        console.log('beginupload', data.options);
        console.log('fileInputName type', fileInputName, transtype);
      },
      uploadprogress(data) {
        const param = {
          docId: data.docId,
          percent: data.percentage
        };
      },
      uploaddone(error, file) {
        const param = {
          docId: docIdDone,
          name: file.fileInputName,
          percent: 100,
          state: 2
        };
        if (error) {
          param.state = WhiteBoardState.serializeFileStateMap['UPLOADFAIL'];
        } else {
          param.state = WhiteBoardState.serializeFileStateMap['TRANSING'];
          param.percent = 0;
        }
      },
      done(a, b) {
        console.log('send file done', a, b);
      }
    });

文档上传转码通知事件

如果上传成功,会有事件通知。

    nim.on('notifyTransLog', function(data) {
      console.log('notifyTransLog', data);
      // data.state = WhiteBoardState.serializeFileStateMap['TRANSCOMPLETE'];
      // data.percent = 100;
    });

删除云端的转码文档

单个文档删除协议(对于正在转码中的文档,删除后将不会收到转码后下发的结果),传入docId来表示需要删除的文档id,在回调结果中对删除结果进行处理。

    nim.deleteFile({
      docId,
      error: function(a, b) {
        console.error('deleteFile error', a, b);
      },
      success: function() {
        console.log('deleteFile success');
        // 删除文件
      }
    });
参数 类型 说明
docId string 文档ID
callback object 回调函数

拉取文档转码信息列表

文档分页查询协议,只有文档的所有者有权限进行查询,传入文档docId来表示查询的起始文档的Id,若为空,表示从头开始查找,按照文档转码的发起时间降序排列,传入limit来表示查询的文档的最大数目,有最大值限制,目前为30,在回调结果中对查询结果处理。

    nim.getFileList({
      limit: 30,
      success: function(data) {
        console.log('getFileList success', data);
      },
      error: function(error) {
        console.error('getFileList error', error);
      }
    });
参数 类型 说明
limit number 查询的文档的最大数目,有最大值限制,目前为30
callback object 回调函数
参数 类型 说明
docId string 文档ID
flag string 回调函数
name string 文档名称
pageCount string 回调函数
picInfo string 包含文档宽高大小信息
prefix string 文档下载链接前缀
size string 文档大小
state string 转码状态 0: '状态未知',1: '转码准备中',2: '转码中',3: '转码超时',4: '转码成功',5: '转码失败'
transSize string 转码后的图片总大小,单位字节
transType string 转码的图片类型 10: 'jpg',11: 'png',0: 'unknown'
type string 文档类型 1: 'ppt',2: 'pptx',3: 'pdf'

通过以上查询得到的文档信息

拼接得到文档源的链接地址: ${prefix}_${name}

拼接得到文档图片的链接地址: ${prefix}_${type}_${index}.${fileTypeMap[transType]}(index为当前页码,fileTypeMap[transType]需要转成真实后缀,例如:jpg或png)