书签

本文介绍文字文档如何获取书签对象、添加书签和替换书签内容等。

获取书签对象

  • 语法

    表达式.ActiveDocument.Bookmarks

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //书签对象
      const bookmarks = await app.ActiveDocument.Bookmarks;
    }

添加书签

  • 语法

    表达式.ActiveDocument.Bookmarks.Add({ Name, Range })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    书签名。命名要求如下:

    • 不能多于一个单词。

    • 不能含有空格、数字以及半角句号(.)等特殊符号。

    Range

    Object

    书签标记的文本区域。可将书签设置到一个折叠的区域(插入点)。

  • Range说明

    属性

    数据类型

    是否必填

    描述

    Start

    Number

    设置书签的起点。

    End

    Number

    设置书签的终点。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //书签对象
      const bookmarks = await app.ActiveDocument.Bookmarks;
    
      //添加书签
      await bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    }

获取书签内容

  • 语法

    表达式.ActiveDocument.Bookmarks.GetBookmarkText(Name)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    书签名。

  • 返回值

    返回对应的书签内容。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //书签对象
      const bookmarks = await app.ActiveDocument.Bookmarks;
    
      //添加书签
      await bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      //获取书签内容
      const bookmarkText = await bookmarks.GetBookmarkText('WebOffice');
      console.log(bookmarkText);
    }

替换书签内容

  • 语法

    表达式.ActiveDocument.Bookmarks.ReplaceBookmark(Data)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Data

    Array.<Object>

    替换内容结构体。

  • Data说明

    属性

    数据类型

    是否必填

    描述

    name

    String

    替换书签的名称。

    type

    String

    替换书签的类型。书签类型为TEXT。

    value

    String

    替换书签的新内容。

  • 返回值

    返回Boolean,为true表示替换成功,否则失败。

  • 示例

    //获取所有书签
    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //书签对象
      const bookmarks = await app.ActiveDocument.Bookmarks;
    
      //添加书签
      await bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      //替换书签内容
      const isReplaceSuccess = await bookmarks.ReplaceBookmark([
        {
          name: 'WebOffice',
          type: 'text',
          value: '替换书签内容',
        },
      ]);
      console.log(isReplaceSuccess); //true
    }

获取所有书签

  • 语法

    表达式.ActiveDocument.Bookmarks.Json()

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

  • 返回值

    属性

    数据类型

    描述

    name

    String

    书签名。

    begin

    Number

    书签开始位置。

    end

    Number

    书签结束位置。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      //获取所有书签
      const bookmarks = await app.ActiveDocument.Bookmarks.Json();
      console.log(bookmarks);
    }

判断书签是否存在

  • 语法

    表达式.ActiveDocument.Bookmarks.Exists(Name)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    书签名。

  • 返回值

    返回Boolean,为true表示书签存在,否则不存在。

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 判断书签是否存在
      const isExist = await app.ActiveDocument.Bookmarks.Exists('WebOffice');
      console.log(isExist); // true
    }

获取书签数量

  • 语法

    表达式.ActiveDocument.Bookmarks.Count

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

  • 返回值

    返回Number代表文档书签的数量。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 获取书签数量
      const count = await app.ActiveDocument.Bookmarks.Count;
      console.log(count);
    }

获取和设置书签排序

  • 语法

    表达式.ActiveDocument.Bookmarks.DefaultSorting = WdBookmarkSortBy

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

    设置书签排序时,WdBookmarkSortBy详细可参考:Enum.WdBookmarkSortBy

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
    
      // 书签排序
      const sort = await app.ActiveDocument.Bookmarks.DefaultSorting;
    
      // 设置书签排序
      app.ActiveDocument.Bookmarks.DefaultSorting = 0;
    }

单个书签

获取单个书签对象

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    书签名。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //书签对象
      const bookmarks = await app.ActiveDocument.Bookmarks;
    
      //添加书签
      await bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      //获取单个书签对象
      await app.ActiveDocument.Bookmarks.Item('WebOffice');
    }

删除书签

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Delete()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      //删除书签
      await app.ActiveDocument.Bookmarks.Item('WebOffice').Delete();
    }

获取书签名称

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Name

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      //获取书签名称
      await app.ActiveDocument.Bookmarks.Item('WebOffice').Name;
    }

    复制书签

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name1).Copy(Name2)

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

  • 参数

    属性

    数据类型

    默认值

    必填

    说明

    Name

    String

    书签名

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 复制书签
      await app.ActiveDocument.Bookmarks.Item('WebOffice').Copy('NewBookmark');
    }

    选中书签内容

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Select()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 选中书签内容
      await app.ActiveDocument.Bookmarks.Item('WebOffice').Select();
    }

    书签内容是否为空

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Empty

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 判断书签内容是否为空
      const isEmpty = await app.ActiveDocument.Bookmarks.Item('WebOffice').Empty;
      console.log(isEmpty); // false
    }

    书签内容起始位置

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Start

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 书签内容起始位置
      const start = await app.ActiveDocument.Bookmarks.Item('WebOffice').Start;
      console.log(start); // 1
    }

    书签内容结束位置

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).End

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 书签内容结束位置
      const end = await app.ActiveDocument.Bookmarks.Item('WebOffice').End;
      console.log(end); // 10
    }

    获取书签内容区域

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Range

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 获取书签内容区域
      await app.ActiveDocument.Bookmarks.Item('WebOffice').Range;
    }

    获取书签内容的类型

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).StoryType

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

    书签内容的类型,WdStoryType详细可参考:Enum.WdStoryType

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 获取书签内容的类型
      await app.ActiveDocument.Bookmarks.Item('WebOffice').StoryType;
    }

    书签内容是否是表格的一列

  • 语法

    表达式.ActiveDocument.Bookmarks.Item(Name).Column

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 添加书签
      await app.ActiveDocument.Bookmarks.Add({
        Name: 'WebOffice',
        Range: {
          Start: 1,
          End: 10,
        },
      });
    
      // 判断书签内容是否是表格的一列
      const column = await app.ActiveDocument.Bookmarks.Item('WebOffice').Column;
      console.log(column); // false
    }