Skip to main content

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)

多个模式用 “ | ” 连接

参数

属性数据类型必填说明
typenumber是传入保护类型,具体值参照Writer.ProtectionType枚举值(只有修订保护类型可以和其他保护类型同时设置,其他保护类型只能单独设置)
docPermissionWriter.DocPermission否当开启区域编辑保护时,全文的默认权限,默认全文只读
passwordstring否内容保护密码(可空,不传或 undefined = 无密码)
optionsobject否鉴权参数 { 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)

参数

属性数据类型必填说明
passwordstring否内容保护密码。文档配置了 nounce 时只校验 nounce(密码不作为替代凭据);未配置 nounce 且内容保护已设密码时凭此密码校验,未设密码直接放行;校验不通过返回 false 不执行。
optionsobject否鉴权参数 { 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)

参数

属性数据类型必填说明
passwordstring是编辑授权密码。空字符串 "" = 关闭只读保护;非空 = 开启只读保护并设置该密码,已开启时为更新密码(保持开启状态与解锁状态不变,仅更新密码)。
optionsobject否鉴权参数 { 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)

参数

属性数据类型必填说明
passwordstring否只读保护密码。文档配置了 nounce 时只校验 nounce;未配置 nounce 且只读保护已设密码时凭此密码校验,未设密码直接放行。
optionsobject否鉴权参数 { 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)

参数

属性数据类型必填说明
passwordstring否内容保护密码。文档配置了 nounce 时只校验 nounce;未配置 nounce 且内容保护已设密码时凭此密码校验,未设密码直接放行。
optionsobject否鉴权参数 { 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:文档类型应用对象

参数

属性数据类型必填说明
rangeWriter.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:文档类型应用对象

参数

属性数据类型必填说明
optionany否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.ScrollLeftnumber否文档水平滚动距离(单位 px)
value.ScrollTopnumber否文档垂直滚动距离(单位 px)

返回值

Promise<boolean>

示例

async function example() {
// 根据 left 和 top 进行滚动
const result = await Application.ActiveDocument.scrollTo({
ScrollLeft: 10,
ScrollTop: 20
});
}