ONLYOFFICE 宏是一种功能强大的工具,可以让用户扩展编辑器的功能并对其进行定制,以满足特定需求。随着 8.3 版本的发布,我们推出了一系列新的 API 方法,能够帮您简化工作流程。 在本文中,我们将使用其中一种方法创建一个宏,从第二页开始,在整个文档中插入自定义页码。

关于 ONLYOFFICE
ONLYOFFICE 是一个国际开源项目,专注于高级和安全的文档处理,可提供文本文档、电子表格、幻灯片、表单和 PDF 编辑器。ONLYOFFICE 文档高度兼容微软 Office 格式,并提供数百种格式化和样式工具,帮助您实现复杂的编辑功能。
如果您需要为您的企业集成强大的编辑功能,或是为您的应用程序、网站或其他解决方案提供强大的编辑功能,您可以选择开发者版。观看下方视频,了解更多信息:
ONLYOFFICE文档开发者版:集成至Web应用程序,实现文档编辑功能
什么是 ONLYOFFICE 宏
如果您是一名资深 Microsoft Excel 用户,那么相信您已对于 VBA 宏非常熟悉了。这些宏是帮助您自动执行日常任务的小型脚本。无论是重构数据,还是在单元格区域中插入多个值。ONLYOFFICE 宏的基础是 JavaScript 语法与文档生成器 API 方法。基于 JavaSript 的宏易于使用,具有跨平台特性且十分安全。这就使得其与 VBA 相比有着显著的优势。
下面一起来看看如何创建宏,用来帮您插入自定义页码,简化工作流程。
关于设置起始页码的方法
设置起始页码的方法是 ApiSection 类的一部分。 通过这个新方法,您可以定义文档中特定章节的起始页码。 下面是其实现的示例:
let doc = Api.GetDocument();
let paragraph = doc.GetElement(0);
paragraph.AddText("This section starts with second page number");
paragraph.AddPageBreak();
paragraph.AddText("Third page");
paragraph.AddPageBreak();
paragraph.AddText("Fourth page");
let section = paragraph.GetSection();
section.SetStartPageNumber(2);
let header = section.GetHeader("default", true);
paragraph = header.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
let footer = section.GetFooter("default", true);
paragraph = footer.GetElement(0);
paragraph.AddText("Page #");
paragraph.AddPageNumber();
在稍后部分,我们将使用此方法设置文档第二页的起始页码。
创建宏
检索文档和节
宏首先通过 Api.GetDocument() 访问活动文档。然后使用 doc.GetSections()[0] 获取第一节,这代表了文档的第一页:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];
配置第一页
// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");
- SetTitlePage(true) 将第一页标记为标题页。
- RemoveHeader(“title”) 和 RemoveFooter(“title”) 确保标题页上不会显示页眉或页脚。
配置后续页面
// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1
- finalSection 变量代表将应用页眉、页脚和页码编号的节。
- SetStartPageNumber(0) 确保从第二页开始正确编号,使第一个编号页面为“1”。
配置页眉
// Header Configuration
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();// Choose header justification (uncomment one):
//headerText.SetJc("left"); // Left alignment
headerText.SetJc("center"); // Center alignment
//headerText.SetJc("right"); // Right alignment
- GetHeader(“default”, true) 获取该节的页眉。
- 使用 GetElement(0) 访问页眉的第一个元素。
- AddPageNumber() 插入动态页码。
- SetJc() 方法定义页眉文本的对齐方式,可将其定位到左侧、居中或右侧。
配置页脚
// Footer Configuration - uncomment for inserting a page number in the footer
let footer = finalSection.GetFooter("default", true);
const footerText = footer.GetElement(0);
footerText.AddPageNumber();// Choose footer justification (uncomment one):
// footerText.SetJc("left"); // Left alignment
footerText.SetJc("center"); // Center alignment
// footerText.SetJc("right"); // Right alignment
- GetFooter(“default”, true) 获取该节的页脚。
- 使用 GetElement(0) 访问页脚的第一个元素。
- AddPageNumber() 在页脚中插入动态页码。
- SetJc() 方法控制页脚文本的对齐方式,与页眉类似。
注意: 默认情况下,页脚配置已注释。 您只需注释或取消注释相关部分,就可以在页眉、页脚或两者之间切换插入编号。
下面是完整的宏代码:
let doc = Api.GetDocument();
let firstSection = doc.GetSections()[0];// First Page Configuration
firstSection.SetTitlePage(true);
// Remove first page header/footer
firstSection.RemoveHeader("title");
firstSection.RemoveFooter("title");// Subsequent Pages Configuration
let finalSection = doc.GetFinalSection();
finalSection.SetStartPageNumber(0); // Sets start page number. Default is 0 => 1st numbered page is 1// Header Configuration
let header = finalSection.GetHeader("default", true);
const headerText = header.GetElement(0);
headerText.AddPageNumber();// Choose header justification (uncomment one):
//headerText.SetJc("left"); // Left alignment
headerText.SetJc("center"); // Center alignment
//headerText.SetJc("right"); // Right alignment// Footer Configuration - uncomment for inserting a page number in the footer
// let footer = finalSection.GetFooter("default", true);
// const footerText = footer.GetElement(0);
// footerText.AddPageNumber();// Choose footer justification (uncomment one):
// footerText.SetJc("left"); // Left alignment
// footerText.SetJc("center"); // Center alignment
// footerText.SetJc("right"); // Right alignment
我们希望这个宏能帮助您简化工作中的重复任务。ONLYOFFICE 宏旨在简化您的工作并提高效率。我们鼓励您探索我们广泛的 API 库并创建适合您需求的自定义宏。如果您有任何想法或建议,请随时联系我们。我们始终欢迎新想法和合作!祝您探索愉快!
立即获取 ONLYOFFICE
立即下载适用于 Windows、macOS 或 Linux 的 ONLYOFFICE 桌面编辑器,或注册一个免费的协作空间帐户,使用宏帮你提升工作效率!
如果您希望集成 ONLYOFFICE 并进行个性化的商业部署,可以选择我们的开发者版本。我们支持所有编程语言和任意部署模式,并选择定制品牌标识。点击下方链接,申请免费试用30天:
下载 ONLYOFFICE 服务器解决方案,并以您的品牌提供给您的客户 | ONLYOFFICEhttps://www.onlyoffice.com/zh/download-developer.aspx?from=downloadintegrationmenu#docs-developer?utm_source=csdn&utm_medium=article&utm_campaign=insert_custom_page_numbering相关链接
ONLYOFFICE API 方法
GitHub 中的 ONLYOFFICE
更多关于 ONLYOFFICE 宏的用法
GitHub 中的 ONLYOFFICE