有奖捉虫:云通信与企业服务文档专题,速来> HOT

JS-SDK 提供了高级功能可直接对文档进行操作,以下是高级功能的调用流程。

1. 等待文档加载完成

await demo.ready() // 务必等待 demo ready 之后再调用高级 api,demo 对象是指 JS-SDK 实例化后的对象,参考使用说明->初始化

2. 获取文档对象

// 文字
const wordApp = demo.WordApplication()
// 表格
const excelApp = demo.ExcelApplication()
// 演示
const pptApp = demo.PPTApplication()
// PDF
const pdfApp = demo.PDFApplication()

// 自动识别
const app = demo.Application

3. 使用高级功能

以下对文字文件、表格文件、演示文件、PDF 文件等类型使用高级功能进行列举介绍,如需了解上述类型支持的文件格式,请参见 规则与限制

文字文件

获取总页数

展开&收起

  /*
  * @param: WdInformation: {
  *      wdNumberOfPagesInDocument: 4
  *  }
  * @return: {PagesCount: number, End: boolean}
  */
  const app = demo.WordApplication()
  const {Enum} = app
  let totalPages = await app.ActiveDocument.Range.Information(Enum.WdInformation.wdNumberOfPagesInDocument)
  if (totalPages.End) {
    // 获取总页数是异步过程,仅当totalPages.End为true时,获取到的总页数才是准确的
    console.log("加载完了!一共", totalPages.PagesCount, "页")
  }

获取当前页

展开&收起

  /*
  * @param: WdInformation: {
  *      wdActiveEndPageNumber: 3
  *  }
  * @return: number
  */
  const app = demo.WordApplication()
  const {Enum} = app
  let currentPage = await app.ActiveDocument.Selection.Information(Enum.WdInformation.wdActiveEndPageNumber)

跳转到指定页

展开&收起

  /*
  * @param: { What?: WdGoToItem, Which?: WdGoToDirection.wdGoToAbsolute, Count?: number, Name?: string}
  * WdGoToItem: {
  *      wdGoToPage: 1,
  *  }
  *  WdGoToDirection: {
  *      wdGoToAbsolute: 1
  *  }
  * @return: number 返回跳转页
  */
  const app = demo.WordApplication()
  const {Enum} = app
  const page = await app.ActiveDocument.Selection.GoTo(Enum.WdGoToItem.wdGoToPage, Enum.WdGoToDirection.wdGoToAbsolute, 10)
  // 或者
  const page = await app.ActiveDocument.Selection.GoTo({
    What: Enum.WdGoToItem.wdGoToPage,
    Which: Enum.WdGoToDirection.wdGoToAbsolute,
    Count: 10
  })

设置评论显示

展开&收起

  /*
  * @param: bool
  * true 为显示, false 为隐藏
  */

  // 隐藏评论
  demo.WordApplication().ActiveDocument.ActiveWindow.View.ShowComments = false

设置目录显示

展开&收起

  /*
  * @param: bool
  * true 为显示, false 为隐藏
  */

  // 隐藏目录
  demo.WordApplication().ActiveDocument.ActiveWindow.DocumentMap = false

视图缩放

展开&收起

  /*
  * @return: number
  */
  await demo.WordApplication().ActiveDocument.ActiveWindow.View.Zoom.Percentage  // 读取视图缩放比例

  /*
  * @param : 50 <= number <= 300 (缩放属性值在50%到 300%之间)
  */
  demo.WordApplication().ActiveDocument.ActiveWindow.View.Zoom.Percentage = 100  // 设置视图缩放比例

表格文件

获取所有 sheet 名称

展开&收起

const app = demo.ExcelApplication()
const Names = []
// For(start, end, step, handle)
await app.For(1, app.Sheets.Count, 1, async (Index) => {
    Names.push(await app.Sheets.Item(Index).Name)
})
console.log(Names)

获取当前 sheet 名称

展开&收起

const app = demo.ExcelApplication()
const name = await app.ActiveSheet.Name

切换到指定 sheet

展开&收起

const app = demo.ExcelApplication()
const sheetIndex = 1 // sheets序号, 从1开始
app.Sheets.Item(sheetIndex).Activate() // 切换sheet

视图缩放

展开&收起

  /*
  * @return: number
  */
  await demo.ExcelApplication().ActiveWorkbook.ActiveSheetView.Zoom    // 读取视图缩放比例
  /*
  * @param : 10 <= number <= 500 (缩放属性值在10%到500%之间)
  */
  demo.ExcelApplication().ActiveWorkbook.ActiveSheetView.Zoom = 100    // 设置视图缩放比例

演示文件

获取总页数

展开&收起

  /*
  * @return: number
  */
  let totalPages = await demo.PPTApplication().ActivePresentation.Slides.Count

获取当前页

展开&收起

  /*
  * @return: number
  */
  let totalPages = await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.Slide.SlideIndex

跳转到指定页

展开&收起

  /*
  * @param: number
  */
  await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoSlide(3)    // 跳转到第三页

播放幻灯片

展开&收起

await demo.PPTApplication().ActivePresentation.SlideShowSettings.Run()

退出播放

展开&收起

await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.Exit()

幻灯片下一步动画

展开&收起

  await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoNextClick()

幻灯片上一步动画

展开&收起

  await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.GotoPreClick()

获取播放状态

展开&收起

  /*
  * @return: string ('preview' | 'play')
  */
  let currentState = await demo.PPTApplication().ActivePresentation.SlideShowWindow.View.State

视图缩放

展开&收起

  /*
  * @return: number
  */
  await demo.PPTApplication().ActivePresentation.View.Zoom    // 读取视图缩放比例
  /*
  * @param : 1 <= number <= 400 (缩放属性值在1%到400%之间)
  */
  demo.PPTApplication().ActivePresentation.View.Zoom = 100    // 设置视图缩放比例(非播放模式)

PDF 文件

获取总页数

展开&收起

  /*
  * @return: number
  */
  let totalPages = await demo.PDFApplication().ActivePDF.PagesCount

获取当前页

展开&收起

  /*
  * @return: number
  */
  let totalPages = await demo.PDFApplication().ActivePDF.CurrentPage

跳转到指定页

展开&收起

  /*
  * @param : { PageNum: number }
  */
  let PageNum = 10
  await demo.PDFApplication().ActivePDF.JumpToPage({PageNum})

设置页面渲染模式

展开&收起

  /*
  * 1:单页模式
  * 0:多页模式
  */

  demo.PDFApplication().ActivePDF.PageMode = 1      // 设置为单页模式

设置目录显示

展开&收起

  /*
  * true:显示目录
  * false:隐藏目录
  */
  demo.PDFApplication().ActivePDF.DocumentMap = true    // 显示目录

视图缩放

展开&收起

  /*
  * @return: number
  */
  await demo.PDFApplication().ActivePDF.Zoom  // 读取视图缩放比例
  /*
  * @param : 1 <= number <= 400 (缩放属性值在1%到400%之间)
  */
  demo.PDFApplication().ActivePDF.Zoom = 100  // 设置视图缩放比例

事件监听

展开&收起

可以通过实例的 on 方法监听事件。

demo.on('事件名', function(data) {
    // do something...
})

事件名说明
fileOpen文件打开成功或者失败时的事件回调
error错误发生时的事件回调,会返回错误码
fileStatus文件保存的事件回调,会返回状态 status 值:0表示文档无更新,1表示版本保存成功,2表示暂不支持保存空文件,3表示空间已满,4表示保存中请勿频繁操作,5表示保存失败,6表示文件更新保存中,触发场景:修改文档内容触发的保存,7表示文档内容修改保存成功