会议

本文介绍使用文字文档时如何获取指定的区域或图形对象、滚动通知事件和选区变化通知事件。

获取当前视图内某个位置的GCP

获取由正文左上角到指定点所在的区域或图形对象。

  • 语法

    表达式.ActiveDocument.ActiveWindow.RangeFromPoint(x, y)

    表达式:文档类型应用对象。

  • 参数

    属性

    数据类型

    是否必填

    描述

    x

    Number

    该点距离正文左上角的水平距离(以像素为单位),页面的滚动不会影响该点水平距离的改变。

    y

    Number

    该点距离正文左上角的垂直距离(以像素为单位),页面的滚动不会影响该点垂直距离的改变。

  • 返回值

    返回获取到的区域或图形对象range。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //返回由正文左上角到指定点所在的区域或图形对象
      const range = await app.ActiveDocument.ActiveWindow.RangeFromPoint(10, 10);
      console.log(range);
     
    }

显示指定GCP

滚动文档窗口,以便在文档窗口显示指定的区域或图形对象。

  • 语法

    表达式.ActiveDocument.ActiveWindow.ScrollIntoView(range)

    表达式:文档类型应用对象。

  • 参数

    属性

    数据类型

    是否必填

    描述

    range

    Range

    某个位置的区域或图形对象。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取range
      const range = await app.ActiveDocument.ActiveWindow.RangeFromPoint(10, 10);
      console.log(range);
    
      //滚动文档窗口,显示指定的区域
      await app.ActiveDocument.ActiveWindow.ScrollIntoView(range)
     
    }

滚动通知事件

  • 语法

    表达式.Sub.WindowScrollChange = Function

    表达式:文档类型应用对象。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //滚动通知事件
      app.Sub.WindowScrollChange = ({ Data }) => {
        //左上角坐标x,y
        console.log(Data.scrollLeft, Data.scrollTop);
      }
    }

选区变化通知事件

  • 语法

    表达式.Sub.WindowSelectionChange = Function

    表达式:文档类型应用对象。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //选区变化通知事件
      app.Sub.WindowSelectionChange = (e) => {
        const { begin, end } = e;
        //选区开始位置,结束位置
        console.log(`选区开始位置:${begin}, 结束位置:${end}`);
      }
    
      //设置选区范围
      setTimeout( () => {
        await app.ActiveDocument.Range(100,100).SetRange(10, 10)
      }, 2000);
    }