如何在公文套红中调整版记位置

在公文的场景中,往往对格式有很严格的要求,如果全部由人工手动去调整,可能耗时耗力又效果不尽人意。尤其是对于版记来说,公文中的版记应置公文最后一页,而且需要在偶数页面,版记的最后一个要素置于最后一行这个听起来就很复杂的格式有什么好办法解决吗?当然有!使用zOffice JS SDK即可!

一、zOffice简介

zOffice提供云端Office能力,包括Word、Excel、PPT三类办公文档的在线协同编辑,通过专业级的文档能力,高效的协作体验,内容级的安全管控,丰富的集成开发接口,来赋能企业的业务系统,帮助业务系统实现文档在线预览和编辑,文档操作过程全部线上进行,完成在线办公的场景闭环。官网链接:Filez文档中台|文档在线编辑预览集成|专业级文档处理赋能

作为在线文档编辑服务,zOffice提供丰富的API,可以实现对Excel,Word等文档的内容进行操作。

二、zOffice如何使用

在应用了套红后,因为内容不同,版记可能会不满足上述要求。

zOffice在套红场景下提供了自动调整版记的功能:

使用流程如下:

首先打开套红页面,选择套红模板和需要进行套红的公文文档:

如何在公文套红中调整版记位置_第1张图片

 然后进行必要的替换内容填写(切记要勾选“调整尾注位置”):

如何在公文套红中调整版记位置_第2张图片

然后点击应用,等待结果:

如何在公文套红中调整版记位置_第3张图片

 如何在公文套红中调整版记位置_第4张图片

可以看到版记已经被调整到了偶数页的末尾。

那么这种功能是如何做到的呢?

在SDK中会调用moveFootArea 方法来自动调整尾注:

app.OAExtention.moveFootArea(app, id, { sep: 'pagebreak' }}

如果对效果不够满意,则可以通过修改第三个参数 {sep} 来进行行为控制

三、实现逻辑

  1. 把整个版记设置为书签
  2. 获取到书签所在的位置信息:在哪个页面,所在段落
  3. 如果是奇数,插入一个分页符(或者通过多个空行)来将版记推到偶数页
  4. 计算版记前面需要多少行才能被放在页面末尾,然后通过插入空行来完成

四、代码逻辑

以下代码均为逻辑示例,实际操作请通过SDK相关接口来完成

// 假设提前通过 ui 设置了书签,名为版记
// 通过书签拿到版记的段落
const para = getBookMarkPara("版记");
// 获取页面信息
const page = getPageInfo(para);
// 奇数页,插入分页符来把版记调整到偶数页
// 或者通过计算插入回车符
if(page.pageNumber % 2) {
  // 把光标移动到段首
    moveToPosition(para, 0);
  // 插入分页符
    execCommand('pagebreak');
}

// 这时候版记已经在偶数页了
// 接着计算需要多少空行才能调整到尾部
// 剩余可用高度为页面高度 - 版记高度 - 版记之前的高度
// 这些数值均可以通过合适的 SDK 接口来获取到
let freeHeight = pageHeight - paraHeight - beforeSpace; 
const lineHeight = getFirstLineHeight() ;// 版记段落第一行的高度
const lineCount = Math.floor(lineHeight / freeHeight); // 需要的空行数量
execCommand('enter', lineCount); // 添加指定数量空行

五、总结

至此,对版记位置的处理就结束了,是不是很简单呢?通过zOffice即可方便快捷地对公文进行套红处理,其中就包括了对版记位置调整,解放双手的同时还可以提高效率,何乐而不为呢?

你可能感兴趣的:(Filez文档中台,Filez预览中心,Filez内容协同平台)