Document
当前文字文档
属性
ActiveWindow
返回一个 Window 对象,该对象代表当前活动窗口
语法
Application.ActiveDocument.ActiveWindow
返回值
ActiveWindow
示例
function example() {
const ActiveWindow = Application.ActiveDocument.ActiveWindow;
}
Bookmarks
JSSDK: 1.2.2、FilezOffice2022.3 FP2 支持
返回一个 Bookmarks 集合,该集合代表文档中的所有书签。
语法
Application.ActiveDocument.Bookmarks
返回值
Writer.Bookmarks
示例
// 获取文档中所有书签数目
function example() {
const bookmarks = Application.ActiveDocument.Bookmarks;
const count = await bookmarks.count;
}
PermMarks
JSSDK: 1.2.2、FilezOffice2022.3 FP2 支持
返回一个 PermMarks 集合,该集合代表文档中的所有可编辑区域。
语法
Application.ActiveDocument.PermMarks
返回值
Writer.PermMarks
示例
// 获取文档中所有可编辑区域数目
function example() {
const permMarks = Application.ActiveDocument.PermMarks;
const count = await permMarks.count;
}
Comments
返回一个 Comments 集合,该集合代表文档中的所有批注。
语法
Application.ActiveDocument.Comments
返回值
Writer.Comments
示例
// 获取文档中所有批注数目
function example() {
const comments = Application.ActiveDocument.Comments;
const count = await comments.count;
}
Paragraphs
返回一个 Paragraphs 集合,该集合代表文档中的所有段落。
语法
Application.ActiveDocument.Paragraphs
返回值
Writer.Paragraphs
示例
// 获取文档中所有段落数目
function example() {
const paragraphs = Application.ActiveDocument.Paragraphs;
const count = await paragraphs.count;
}
Tables
返回一个 Tables 集合,该集合代表文档中的所有表格。
语法
Application.ActiveDocument.Tables
返回值
Writer.Tables
示例
// 获取文档中所有表格数目
function example() {
const tables = Application.ActiveDocument.Tables;
const count = await tables.count;
}
Revisions
返回一个 Revisions 集合,该集合代表文档中的所有修订。
语法
Application.ActiveDocument.Revisions
返回值
Writer.Revisions
示例
// 获取文档中所有修订数目
function example() {
const revisions = Application.ActiveDocument.Revisions;
const count = await revisions.count;
}
Shapes
返回一个 Shapes 集合,该集合代表文档中的所有形状。
语法
Application.ActiveDocument.Shapes
返回值
Writer.Shapes
示例
// 获取文档中所有形状数目
function example() {
const shapes = Application.ActiveDocument.Shapes;
const count = await shapes.count;
}
InlineShapes
返回一个 InlineShapes 集合,该集合代表文档中的所有内嵌形状。
语法
Application.ActiveDocument.InlineShapes
返回值
Writer.InlineShapes
示例
// 获取文档中所有内嵌形状数目
function example() {
const inlineShapes = Application.ActiveDocument.InlineShapes;
const count = await inlineShapes.count;
}
Sections
返回一个 Sections 集合,该集合代表文档中的所有节。
语法
Application.ActiveDocument.Sections
返回值
Writer.Sections
示例
// 获取文档中所有内嵌形状数目
function example() {
const sections = Application.ActiveDocument.Sections;
const count = await sections.count;
}
OutlineEntries
JSSDK: 1.9.1、FilezOffice V8.0 FP1 支持
返回一个 OutlineEntries 集合,该集合代表文档中的所有大纲段落。
语法
Application.ActiveDocument.OutlineEntries
返回值
Writer.OutlineEntries
示例
// 获取文档中所有大纲段落数目
function example() {
const OutlineEntries = Application.ActiveDocument.OutlineEntries;
const count = await OutlineEntries.count;
}
Content
JSSDK: 1.3.3、FilezOffice V6.0 FP3 支持
返回一个只读Range对象,该对象代表主文档文章。
语法
Application.ActiveDocument.Content
返回值
Range
示例
async function example() {
const range = Application.ActiveDocument.Content;
}
ProtectionType
JSSDK: 1.7.2、FilezOffice V7.2 FP1 支持
返回文档的保护类型,可以是 Writer.ProtectionType 常量之一
语法
Application.ActiveDocument.ProtectionType
返回值
Promise<number>
示例
async function example() {
const protectType = await Application.ActiveDocument.ProtectionType;
}
PermissionType
JSSDK: 1.9.1、FilezOffice V8.0 FP1 支持
当文档处于区域编辑保护状态时,文档的默认编辑权限,可以是 Writer.DocPermission 常量之一,只读
语法
Application.ActiveDocument.PermissionType
返回值
Promise<Writer.DocPermission>
示例
async function example() {
const docPermission = await Application.ActiveDocument.PermissionType;
}
方法
protect
JSSDK: 1.7.2、FilezOffice V7.2 FP1 支持
JSSDK: 1.12.1、FilezOffice v9.1 FP1 支持
password、options参数
开启内容保护
语法
Application.ActiveDocument.protect(type, docPermission, password, options)
多个模式用 “ | ” 连接
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| type | number | 是 | 传入保护类型,具体值参照Writer.ProtectionType枚举值(只有修订保护类型可以和其他保护类型同时设置,其他保护类型只能单独设置) |
| docPermission | Writer.DocPermission | 否 | 当开启区域编辑保护时,全文的默认权限,默认全文只读 |
| password | string | 否 | 内容保护密码(可空,不传或 undefined = 无密码) |
| options | object | 否 | 鉴权参数 { nounce?: string | number }。文档配置了 nounce 时必须携带且匹配,否则返回 false(此时 password 不作为替代凭据);仅环境变量LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true时生效 |
返回值
Promise<boolean>
示例
async function example1() {
const type = Writer.ProtectionType
const result = await Application.ActiveDocument.protect(type.EditArea | type.Revision); // 同时开启区域编辑和修订保护
console.log(result)
}
async function example2() {
const type = Writer.ProtectionType
const result = await Application.ActiveDocument.protect(type.EditArea, Writer.DocPermission.Editable); // 开启区域编辑保护,全文默认可编辑
console.log(result)
}
async function example3() {
const type = Writer.ProtectionType
// LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为false
// 开启区域编辑保护并设置保护密码,停止保护时需输入该密码,
const result = await Application.ActiveDocument.protect(type.EditArea, undefined, '123456');
console.log(result)
}
async function example4() {
const type = Writer.ProtectionType
// LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true
// 开启区域编辑保护并设置保护密码,匹配nounce,停止保护时也使用改nounce校验
const result = await Application.ActiveDocument.protect(type.EditArea, undefined, undefined, { nounce: '123'});
console.log(result)
}
unprotect
JSSDK: 1.7.2、FilezOffice V7.2 FP1 支持
JSSDK: 1.12.1、FilezOffice v9.1 FP1 支持
password、options参数
关闭内容保护
语法
Application.ActiveDocument.unprotect(password, options)
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| password | string | 否 | 内容保护密码。文档配置了 nounce 时只校验 nounce(密码不作为替代凭据);未配置 nounce 且内容保护已设密码时凭此密码校验,未设密码直接放行;校验不通过返回 false 不执行。 |
| options | object | 否 | 鉴权参数 { nounce?: string | number }。配置了 nounce 的文档必须携带且匹配,否则返回 false;仅环境变量LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true时生效 |
返回值
Promise<boolean>
示例
async function example() {
const result = await Application.ActiveDocument.unprotect();
console.log(result);
}
async function example2() {
// LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为false
// 内容保护设置了密码时,传入密码关闭
const result = await Application.ActiveDocument.unprotect('123456');
console.log(result);
}
async function example3() {
// LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true
// 校验nounce关闭
const result = await Application.ActiveDocument.unprotect(undefined, { nounce: '123'});
console.log(result);
}
setWritePassword
JSSDK: 1.12.1、FilezOffice v9.1 FP1 支持
只读保护开关,设置非空密码即开启,否则关闭
语法
Application.ActiveDocument.setWritePassword(password, options)
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| password | string | 是 | 编辑授权密码。空字符串 "" = 关闭只读保护;非空 = 开启只读保护并设置该密码,已开启时为更新密码(保持开启状态与解锁状态不变,仅更新密码)。 |
| options | object | 否 | 鉴权参数 { nounce?: string | number }。文档配置了 nounce 时必须携带且匹配,否则返回 false(此时密码不作为替代凭据);仅环境变量LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true时生效 |
返回值
Promise<boolean>
示例
async function example() {
// 开启只读保护并设置编辑授权密码(开启后所有人只读)
const result = await Application.ActiveDocument.setWritePassword('123456');
console.log(result);
}
async function example2() {
// 关闭只读保护(未配置 nounce 时不校验密码直接关闭)
const result = await Application.ActiveDocument.setWritePassword('');
console.log(result);
}
async function example3() {
// 关闭只读保护(配置了 nounce 时需校验nounce)
const result = await Application.ActiveDocument.setWritePassword('', { nounce: '123' });
console.log(result);
}
unlockEditing
JSSDK: 1.12.1、FilezOffice v9.1 FP1 支持
临时解锁只读保护,行为同界面「解锁编辑」入口。仅本端本会话有效,刷新后恢复锁定,不关闭保护
语法
Application.ActiveDocument.unlockEditing(password, options)
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| password | string | 否 | 只读保护密码。文档配置了 nounce 时只校验 nounce;未配置 nounce 且只读保护已设密码时凭此密码校验,未设密码直接放行。 |
| options | object | 否 | 鉴权参数 { nounce?: string | number },仅环境变量LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true时生效 |
返回值
Promise<boolean>
示例
async function example() {
// 只读保护已设密码时,输入密码临时解锁编辑
const result = await Application.ActiveDocument.unlockEditing('123456');
console.log(result);
}
async function example2() {
// 配置了 nounce 时,需校验 nounce
const result = await Application.ActiveDocument.unlockEditing(undefined, { nounce: '123' });
console.log(result);
}
unlockProtection
JSSDK: 1.12.1、FilezOffice v9.1 FP1 支持
临时解锁内容保护,行为同界面「解锁保护」入口。仅本端本会话有效,刷新后恢复锁定,不关闭保护
语法
Application.ActiveDocument.unlockProtection(password, options)
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| password | string | 否 | 内容保护密码。文档配置了 nounce 时只校验 nounce;未配置 nounce 且内容保护已设密码时凭此密码校验,未设密码直接放行。 |
| options | object | 否 | 鉴权参数 { nounce?: string | number },仅环境变量LS_WEBRESOURCE_DOCUMENTS_TEXT_PROTECTPASSWORD为true时生效 |
返回值
Promise<boolean>
示例
async function example() {
// 内容保护已设密码时,输入密码临时解除编辑类型限制
const result = await Application.ActiveDocument.unlockProtection('123456');
console.log(result);
}
async function example2() {
// 配置了 nounce 时,需校验 nounce
const result = await Application.ActiveDocument.unlockProtection(undefined, { nounce: '123' });
console.log(result);
}
isDataProtectionOn
JSSDK: 1.0.3、FilezOffice2022.1 FP3 支持
内容保护是否开启
语法
Application.ActiveDocument.isDataProtectionOn()
返回值
Promise<boolean>
示例
async function example() {
const isOpen = await Application.ActiveDocument.isDataProtectionOn();
console.log(isOpen);
}
save
保存文档
语法
Application.ActiveDocument.save()
返回值
Promise<boolean>
示例
async function example() {
await Application.ActiveDocument.save();
}
print
JSSDK: 1.2.2、FilezOffice2022.3 FP2 支持
打印文档
语法
Application.ActiveDocument.print()
返回值
Promise<boolean> 是否成功打开打印页面
示例
async function example() {
await Application.ActiveDocument.print();
}
getMissingFontList
获取当前文档中的缺失字体信息。
语法
Application.ActiveDocument.getMissingFontList()
返回值
Promise<MissingFontListJSON>
MissingFontListJSON
{
missing: string[]; // 服务器未安装的字体
downloadable: string[]; // 服务器已安装、本地未安装、可下载的字体
}
示例
async function example() {
await Application.ready();
const result = await Application.ActiveDocument.getMissingFontList();
// {
// missing: ["方正小标宋简体"],
// downloadable: ["方正小标宋_GBK"]
// }
console.log(result.missing);
console.log(result.downloadable);
}
getWordCount
JSSDK: 1.9.0、FilezOffice V7.4 支持
获取当前文档字数
语法
Application.ActiveDocument.getWordCount()
返回值
Promise<WordsCountJSON>
WordsCountJSON
{
total: number; // 文档总字数
}
示例
async function example() {
const words = await Application.ActiveDocument.getWordCount();
const wordsCount = words.total; // 文档字数
console.log(wordsCount)
}
getSelection
获取当前光标选择范围
语法
Application.ActiveDocument.getSelection()
Application:文档类型应用对象
返回值
Promise<Writer.Range>
示例
async function example() {
const range = await Application.ActiveDocument.getSelection();
}
更推荐使用 Application.Selection.range 来获取当前选区,这是通过 Selection 对象获取的更简洁方式:
const range = await Application.Selection.range;
setSelection
选择指定范围内容
语法
Application.ActiveDocument.setSelection(range)
Application:文档类型应用对象
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| range | Writer.Range | 是 | 范围 |
返回值
Promise<boolean>
示例
async function example() {
const bookmark = await Application.ActiveDocument.Bookmarks.item(1);
const range = await bookmark.range;
const res = await Application.ActiveDocument.setSelection(range);
}
getPageCount
获取页面总数
语法
Application.ActiveDocument.getPageCount()
Application:文档类型应用对象
返回值
Promise<number>
示例
async function example() {
const pageCount = await Application.ActiveDocument.getPageCount();
}
getComments
JSSDK: 1.0.4、FilezOffice2022.1 FP4 支持
获取所有批注数据
语法
Application.ActiveDocument.getComments()
Application:文档类型应用对象
返回值
Promise<Comment[]>
Comment 数据结构
{
content: string,
id: string,
replies: CommentReply[], // 批注回复,如果没有回复,则为空数组
resolved: boolean,
time: number
users: {
name: string,
uid: string
}
}
CommentReply 数据结构
{
content: string,
id: string,
pid: string, // 回复的批注的 id
time: number,
users: {
name: string,
uid: string
}
}
示例
async function example() {
const comments = await Application.ActiveDocument.getComments();
}
getName
获取文档标题名称
语法
Application.ActiveDocument.getName()
Application:文档类型应用对象
返回值
Promise<string>
示例
async function example() {
const documentTitle = await Application.ActiveDocument.getName();
}
getParagraphs
获取当前文档的所有一级段落
语法
Application.ActiveDocument.getParagraphs(option)
Application:文档类型应用对象
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| option | any | 否 | option.afterToc 为 true 表示只获取目录之后的段落 |
返回值
Promise<Writer.Paragraph[]>
示例
async function example() {
const paras = await Application.ActiveDocument.getParagraphs();
}
enableTrackChange
打开跟踪更改,后续修改会生成修订记录
语法
Application.ActiveDocument.enableTrackChange()
Application:文档类型应用对象
返回值
无
示例
async function example() {
await Application.ActiveDocument.enableTrackChange();
}
disableTrackChange
关闭跟踪更改,关闭后后续修改不会再生成修订记录
语法
Application.ActiveDocument.disableTrackChange()
Application:文档类型应用对象
返回值
无
示例
async function example() {
await Application.ActiveDocument.disableTrackChange();
}
acceptAllRevisions
接受所有更改
语法
Application.ActiveDocument.acceptAllRevisions()
Application:文档类型应用对象
返回值
无
示例
async function example() {
await Application.ActiveDocument.acceptAllRevisions();
}
rejectAllRevisions
拒绝所有更改
语法
Application.ActiveDocument.rejectAllRevisions()
Application:文档类型应用对象
返回值
无
示例
async function example() {
await Application.ActiveDocument.rejectAllRevisions();
}
cleanDocument
清稿:清除所有文中的批注和接收全部修订记录
语法
Application.ActiveDocument.cleanDocument()
Application: 文档类型应用对象
返回值
无
示例
async function example() {
await Application.ActiveDocument.cleanDocument();
}
cleanComments
删除所有批注
语法
Application.ActiveDocument.cleanComments()
Application: 文档类型应用对象
返回值
无
示例
async function example() {
await Application.ActiveDocument.cleanComments();
}
scrollTo
JSSDK: 1.11.2、FilezOffice v8.3 FP2支持
根据坐标滚动文档,将文档滚动到指定的水平和垂直位置
语法
Application.ActiveDocument.scrollTo(value)
Application:文档类型应用对象
参数
| 属性 | 数据类型 | 必填 | 说明 |
|---|---|---|---|
| value.ScrollLeft | number | 否 | 文档水平滚动距离(单位 px) |
| value.ScrollTop | number | 否 | 文档垂直滚动距离(单位 px) |
返回值
Promise<boolean>
示例
async function example() {
// 根据 left 和 top 进行滚动
const result = await Application.ActiveDocument.scrollTo({
ScrollLeft: 10,
ScrollTop: 20
});
}