Skip to content

文字组件页面操作相关 API

导出

ActiveDocument.ExportAsFixedFormat()

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

语法

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

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

参数

属性数据类型默认值必填说明
OutputFileName
String
可选
【暂不支持】导出的文件名称
ExportFormat
Enum
wdExportFormatPDF
可选
导出的类型,详细可参考 Enum.WdExportFormat,目前仅支持导出图片和导出 PDF
OpenAfterExport
Boolean
可选
【暂不支持】导出内容后打开新文件
OptimizeFor
Enum
可选
【暂不支持】指定是针对屏幕显示还是打印进行优化,详细可参考 Enum.WdExportOptimizeFor
Range
Enum
可选
指定导出区域是整个文档、当前页面、文本区域还是当前所选内容。默认值是导出整个文档,详细可参考 Enum.WdExportRange
From
Number
可选
如果 Range 参数设置为 wdExportFromTo,则指定起始页码
To
Number
可选
如果 Range 参数设置为 wdExportFromTo,则指定结束页码
Item
Enum
可选
指定导出过程是只包括文本还是包括文本和标记,详细可参考 Enum.WdExportItem
IncludeDocProps
Boolean
可选
指定在最新导出的文件中是否包括文档属性
KeepIRM
Boolean
可选
【暂不支持】指定是否将 IRM 权限复制到 XPS 文档,如果在源文档具有 IRM 保护。默认值为 true
CreateBookmarks
Enum
可选
【暂不支持】指定是否导出书签和要导出的书签的类型,详细可参考 Enum.WdExportCreateBookmarks
DocStructureTags
Boolean
true
可选
【暂不支持】指定是否包含额外数据来帮助屏幕阅读器,例如有关的流和逻辑组织的内容的信息
BitmapMissingFonts
Boolean
true
可选
【暂不支持】指定是否包含文本的位图。 当字体许可不允许在 PDF 文件中嵌入某一字体时,请将此参数设置为 true。如果 false ,则引用该字体,和查看者的计算机会替换合适的字体,如果编写的一个不可用
UseISO19005_1
Boolean
false
可选
【暂不支持】指定是否限制对 PDF 子集的 PDF 使用按照 ISO 标准化 19005-1。 如果 true,所产生的文件会更加可靠地自我包含,但可能会更大或显示更多的视觉瑕疵,由于受到格式的限制
FixedFormatExtClassPtr
Enum
可选
【暂不支持】指定一个指针以指向一个允许对代码的备用实现进行调用的加载项。代码的备用实现将对应用程序生成的 EMF 和 EMF+ 页面描述进行解释,以生成其自身的 PDF 或 XPS
Dpi
Number
96
可选
导出图片的 dpi
Combine2LongPic
Boolean
false
可选
是否输出为长图
ImgFormat
Enum
wdExportFormatPNG
可选
导出图片的格式,详细可参考 Enum.WdExportImgFormat
WaterMark
Boolean
false
可选
带水印还是无水印

返回值

返回打印后 String 型的 url

示例 1:导出 PDF

该 url 可在控制台查看

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

示例 2:导出图片

//@file=base.docx
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)
}

总页数

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

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

语法

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

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

参数

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

属性数据类型默认值必填说明
WdInformation
Enum
4
获取页面信息,目前只开放 Enum.WdInformation.wdNumberOfPagesInDocument(即 4)来获取总页数信息。详细可参考: Enum.WdInformation

返回值

属性数据类型说明
PagesCount
Number
当前已经排版的页码
End
Boolean
是否已排版结束

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

获取当前页页码

ActiveDocument.ActiveWindow.Selection.Information()

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

语法

表达式.ActiveDocument.ActiveWindow.Selection.Information(WdInformation)

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

参数

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

返回值

返回 Number 代表当前页页码

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

分页/连页模式切换

ActiveDocument.SwitchTypoMode(Boolean)

分页/连页模式切换

语法

表达式.ActiveDocument.SwitchTypoMode(Boolean)

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

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

返回值

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

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 分页/连页模式切换
  await app.ActiveDocument.SwitchTypoMode(false)
}

分页模式下的总页数

ActiveDocument.ActiveWindow.ActivePane.Pages.Count

获取分页模式下的总页数

语法

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

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

返回值

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

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

是否显示文件名栏

ActiveDocument.SwitchFileName(Boolean) 显示/不显示文件名栏

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

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

语法

表达式. ActiveDocument.SwitchFileName(Boolean)

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

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

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 分页/连页模式切换
  await app.ActiveDocument.SwitchTypoMode(true)

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

控制目录显示

ActiveDocument.ActiveWindow.DocumentMap

控制目录显示与否

语法

表达式.ActiveDocument.ActiveWindow.DocumentMap = Boolean

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

Booleantrue 时显示目录,否则隐藏目录

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

监听剪切板

Sub.ClipboardCopy

获取剪切板回调事件

语法

表达式.Sub.ClipboardCopy = Function

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

返回值

属性数据类型说明
copyId
String
剪切板 id
isRestoreFocus
Boolean
undefined
text
String
复制的内容

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 获取剪切板回调事件
  app.Sub.ClipboardCopy = e => {
    console.log(e)
  }
}

跳转到指定位置

ActiveDocument.ActiveWindow.Selection.GoTo()

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

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

语法

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

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

参数

属性数据类型默认值必填说明
What
Number
可选
指定区域或选定内容要移动到的项的类别。可以是 WdGoToItem](/client/api/Enum/Word/WdGoToItem) 常量之一。指定为 WdGoToItem.wdGoToBookmark,表明需要跳转的类型是书签;指定为 WdGoToItem.wdGoToPage,表明需要跳转的类型是页面
Which
Number
可选
指定区域或选定内容要移动到的项。可以是 WdGoToDirection 常量之一。指定为 WdGoToDirection.wdGoToAbsolute,表明是绝对定位
Count
Number
可选
在文档中的项的数目。默认值为 1。仅正值有效。
Name
String
可选
如果那些参数是 wdGoToBookmark,则此参数指定一个名称。

返回值

返回到跳转后的页面。

示例 1

跳转到指定的页面

//@file=base.docx
// 跳转到指定页
async function example() {
  await instance.ready()

  const app = instance.Application

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

示例 2

跳转到指定的书签

//@file=base.docx
// 获取所有书签
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(
    app.Enum.WdGoToItem.wdGoToBookmark, // 类型:Bookmark
    app.Enum.WdGoToDirection.wdGoToAbsolute, // 定位
    undefined, // 数量
    'WebOffice' // 书签名
  )

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

保存

ActiveDocument.Save()

保存文件的改动

JSSDK: v1.1.9+、WebOffice v2.3.1+ 支持

语法

表达式.ActiveDocument.Save()

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

返回值

属性数据类型说明
result
String
保存状态
size
Number
文件大小,单位 byte
version
Number
版本

保存状态说明

保存状态说明
ok
版本保存成功,可在历史版本中查看
nochange
文档无更新,无需保存版本
SavedEmptyFile
暂不支持保存空文件 触发场景:内核保存完后文件为空
SpaceFull
空间已满
QueneFull
保存中请勿频繁操作 触发场景:服务端处理保存队列已满,正在排队
fail
保存失败

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

页面属性对象

ActiveDocument.Sections.Item(Index).PageSetup

页面属性对象

语法

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

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

示例

//@file=base.docx
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

获取页面宽度

语法

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

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

示例

//@file=base.docx
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)
}

排版到指定页

ActiveDocument.Sections.Item(Index).PageSetup.TypesetToPage(PageNum)

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

语法

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

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

参数

属性数据类型默认值必填说明
PageNum
Number
指定首次加载的页数

示例

//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

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

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