全部产品

页面

导出

导出当前文件为对应的 PDF 或者 Img 图片,并获取导出后的 url

语法:

表达式.ActiveDocument.ExportAsFixedFormat({ OutputFileName, ExportFormat })

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

参数:

属性

数据类型

必填

说明

OutputFileName

String

可选

导出的文件名称【暂不支持】

ExportFormat

Enum

可选

导出的类型,详细可参考 Enum.WdExportFormat,目前仅支持导出图片和导出 PDF

返回值:

返回打印后 String 型的 url

示例1:导出PDF

async function example() {
  await instance.ready();

  const app = instance.Application;

  // 导出 PDF,并获取导出后的 url
  const pdfUrl = await app.ActiveDocument.ExportAsFixedFormat(); // 默认导出 PDF,所以可以不传参
  console.log(pdfUrl);
}

示例2:导出图片

async function example() {
  await instance.ready();

  const app = instance.Application;

  // 导出 PDF,并获取导出后的 url
  const pdfUrl = await app.ActiveDocument.ExportAsFixedFormat({ ExportFormat: app.Enum.WdExportFormat.wdExportFormatIMG }); // 或者传参 19
  console.log(pdfUrl);
}

总页数

通过 Range.Information,我们可以获取到页面相关的各种信息(目前仅支持获取总页数信息)。

注意

由于文字文档是流式排版,没办法一开始就确定最终页数,只有浏览到最底部才知道总页数。

语法:

表达式.ActiveDocument.Range.Information(WdInformation)

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

参数:

我们需要通过 instance.Enum.WdInformation 拿到所选内容或区域的信息的类型。

属性

数据类型

默认值

必填

说明

WdInformation

Enum

4

获取页面信息,目前只开放 Enum.WdInformation.wdNumberOfPagesInDocument(即 4)来获取总页数信息。详细可参考:Enum.WdInformation

返回值:

属性

数据类型

说明

PagesCount

Number

当前已经排版的页码

End

Boolean

是否已排版结束

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;

  // 获取总页数
  const totalPages = await app.ActiveDocument.Range.Information(instance.Enum.WdInformation.wdNumberOfPagesInDocument);
  console.log(totalPages);
}

当前页页码

获取当前页。

语法:

表达式.Selection.Information(WdInformation)

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

参数:

属性

数据类型

必填

说明

WdInformation

Enum

指定返回的涉及指定所选内容或区域的信息的类型。为 3 WdInformation.wdActiveEndPageNumber)表示页码,在该页中包含指定的所选内容或区域的活动结尾。从文档开头计数。忽略任何对页码的手动调整

返回值:

属性

数据类型

说明

End

boolean

是否到达底部

PagesCount

number

总页数

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;

  // 获取当前页数
  const currentPage = await app.ActiveDocument.ActiveWindow.Selection.Information(instance.Enum.WdInformation.wdActiveEndPageNumber);
  console.log(currentPage );
}

分页和连页模式切换

分页/连页模式切换。

语法:

表达式.ActiveDocument.SwitchTypoMode(Boolean)

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

Boolean 参数,为 true 表示切换到连页模式,为 false 表示切换到分页模式。

返回值:

Boolean 返回值,为 true 表示切换成功,为 false 表示切换失败。

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 分页/连页模式切换
  await app.ActiveDocument.SwitchTypoMode(false);
}

分页模式总页数

获取分页模式下的总页数。

语法:

表达式.ActiveDocument.ActiveWindow.ActivePane.Pages.Count

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

返回值:

返回 Number 属性值代表分页模式下总页数。

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 获取分页模式下的总页数
  const pages = await app.ActiveDocument.ActiveWindow.ActivePane.Pages.Count;
  console.log(pages);
}

显示文件名栏

文件名栏是页面上的一个展示,通过 SwitchFileName 的控制,可以显示或者隐藏文件名栏:

p267148
注意

需要连页模式下才生效,非连页模式下设置了也不会生效。

文件名栏是指连页模式下,在内容开头会显示文件名相关栏。

语法:

表达式. ActiveDocument.SwitchFileName(Boolean)

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

参数 Boolean 为 true 表示显示文件名栏,为 false 表示隐藏文件名栏。

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 分页/连页模式切换
  await app.ActiveDocument.SwitchTypoMode(true);

  // 显示/不显示文件名栏
  await app.ActiveDocument.SwitchFileName(false);
}

获取登录操作者信息

通过 GetOperatorsInfo() 可以获取到当前登录操作者的信息:

协作者

语法:

表达式.ActiveDocument.GetOperatorsInfo()

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

返回值:

属性

数据类型

说明

type

String

请求类型

response

Object

用户信息列表

response说明

属性

数据类型

说明

id

String

用户 id

avatar_url

Object

用户头像

logined

Object

用户登录状态

name

Object

用户姓名

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;

  // 获取当前登录操作者信息
  const operatorsInfo = await app.ActiveDocument.GetOperatorsInfo();
  console.log(operatorsInfo);
}

控制目录显示

控制目录显示与否。

语法:

表达式.ActiveDocument.ActiveWindow.DocumentMap = Boolean

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

Boolean 为 true 时显示目录,否则隐藏目录。

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 控制目录显示与否
  app.ActiveDocument.ActiveWindow.DocumentMap = true;
}

监听剪切板

获取剪切板回调事件。

语法:

表达式.Sub.ClipboardCopy = Function

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

返回值:

属性

数据类型

说明

copyId

String

剪切板 id

isRestoreFocus

Boolean

undefined

text

String

复制的内容

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 获取剪切板回调事件
  app.Sub.ClipboardCopy = async (e) => {
    await console.log(e);
  }
}

跳转到指定位置

GoTo() 方法可以协助我们跳转到页面的指定位置,例如指定页面或者指定的书签。

注意

由于文字文档是流式排版,大文档时,跳转时间会比较长,建议加一个中间 loading 过渡效果。

语法:

表达式.ActiveDocument.ActiveWindow.Selection.GoTo(What, Which, Count, Name)

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

参数:

属性

数据类型

必填

说明

What

Number

可选

指定区域或选定内容要移动到的项的类别。可以是WdGoToItem 常量之一。指定为 WdGoToItem.wdGoToBookmark,表明需要跳转的类型是书签;指定为 WdGoToItem.wdGoToPage,表明需要跳转的类型是页面

Which

Number

可选

指定区域或选定内容要移动到的项。可以是WdGoToDirection 常量之一。指定为 WdGoToDirection.wdGoToAbsolute,表明是绝对定位

Count

Number

可选

在文档中的项的数目。默认值为 1。仅正值有效。

Name

String

可选

如果那些参数是WdGoToItem.wdGoToBookmark,则此参数指定一个名称。

返回值:

返回到跳转后的页面。

示例1:

跳转到指定的页面。

// 跳转到指定页
async function example() {
  await instance.ready();

  const app = instance.Application;

  const page = await app.ActiveDocument.ActiveWindow.Selection.GoTo(instance.Enum.WdGoToItem.wdGoToPage, instance.Enum.WdGoToDirection.wdGoToAbsolute, 3);
}

示例2:

跳转到指定的书签。

// 获取所有书签
async function example() {
  await instance.ready();

  const app = instance.Application;

  // 添加书签
  await app.ActiveDocument.ActiveWindow.Bookmarks.Add({
    Name: 'WebOffice',
    Range: {
      Start: 1,
      End: 10,
    },
  });

  // 跳转到指定的书签
  await app.ActiveDocument.ActiveWindow.Selection.GoTo(
    instance.Enum.WdGoToItem.wdGoToBookmark, // 类型:Bookmark
    instance.Enum.WdGoToDirection.wdGoToAbsolute, // 定位
    undefined, // 数量
    'WebOffice', // 书签名
  );

  // 或者
  await instance.Application.ActiveDocument.ActiveWindow.Selection.GoTo({
    What: Enum.WdGoToItem.wdGoToBookmark,
    Which: Enum.WdGoToDirection.wdGoToAbsolute,
    Name: 'WebOffice', // 书签名
  });
}

保存

注意

JSSDK: v1.1.9+ 支持

保存文件的改动。

语法:

表达式.ActiveDocument.Save()

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

返回值:

属性

数据类型

说明

result

String

保存状态

size

Number

文件大小,单位 byte

version

Number

版本

保存状态说明:

保存状态

说明

ok

版本保存成功,可在历史版本中查看

nochange

文档无更新,无需保存版本

SavedEmptyFile

暂不支持保存空文件 触发场景:内核保存完后文件为空

SpaceFull

空间已满

QueneFull

保存中请勿频繁操作 触发场景:服务端处理保存队列已满,正在排队

fail

保存失败

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;

  // 保存文件的改动
  const save = await app.ActiveDocument.Save();
  console.log(save);
}

页面属性对象

页面属性对象。

语法:

表达式.ActiveDocument.Sections.Item(Index).PageSetup

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

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 页面属性对象
  const pageSetup = await app.ActiveDocument.Sections.Item(1).PageSetup;
}

页面宽度

页面宽度。

语法:

表达式.ActiveDocument.Sections.Item(Index).PageSetup.PageWidth

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

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 页面属性对象
  const pageSetup = await app.ActiveDocument.Sections.Item(1).PageSetup;

  // 获取页面宽度
  const pageWidth = await pageSetup.PageWidth;
  console.log(pageWidth);
}

排版到指定页

排版到指定页。

由于的 Word(文档)是流式排版,所以可以通过 TypesetToPage() 方法来指定首次加载的页数,让用户滚动的时候进一步加载页面数据。

语法:

表达式.ActiveDocument.Sections.Item(Index).PageSetup.TypesetToPage(PageNum)

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

参数:

属性

数据类型

必填

说明

PageNum

Number

指定首次加载的页数

示例:

async function example() {
  await instance.ready();

  const app = instance.Application;
  
  // 排版到指定页
  const pageSetup = await app.ActiveDocument.Sections.Item(1).PageSetup;

  // 排版到指定页
  await pageSetup.TypesetToPage(2);
}