1 Star 0 Fork 516

jiang / ofdrw

forked from ofdrw / ofdrw 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.md 1.92 KB
一键复制 编辑 原始数据 按行查看 历史
Cliven 提交于 2024-01-11 21:54 . 文档错误

OFDRW 内容生成 事件处理

为了帮助开发者对OFD内容生成的不同阶段对文档进行干预,OFDRW提供了系列事件处理接口。

包括以下事件:

  • 页事件(onPage):在每个页面内容生成之前触发。
  • 渲染完成事件(onRenderFinish):在所有页面生成完成之后触发。

页事件

在每个页面内容生成之前触发,通过对该事件的处理可以在虚拟页面中的内容生成OFD Content.xml 前对页面进行干预,例如:向页面中添加页头、页脚、水印等。

事件处理方式如下:

  1. 实现 VPageHandler 接口。
  2. 注册 事件处理器。
class Main {
    public static void main(String[] args) {
        // path ...
        try (OFDDoc ofdDoc = new OFDDoc(path)) {
            // 1. 使用匿名类实现 VPageHandler 接口
            // 2. 注册事件处理器
            ofdDoc.onPage((page) -> {
                // 对 page 追加内容
            });
            // ...
        }
    }
}

完整示例代码见:OFDDocTest.java #setOnPage

渲染完成事件

在所有页面生成完成之后触发,通过对该事件的处理可以在所有页面生成OFD Content.xml 后对文档进行干预,例如:添加动作点、添加扩展内容等。

事件处理方式如下:

  1. 实现 RenderFinishHandler 接口。
  2. 注册 事件处理器。
class Main {
    public static void main(String[] args) {
        // path ...
        try (OFDDoc ofdDoc = new OFDDoc(path)) {
            // 1. 使用匿名类实现 RenderFinishHandler 接口
            // 2. 注册事件处理器
            ofdDoc.onRenderFinish((maxUnitID, ofdDir, index) -> {
                // 对 doc 追加内容
            });
            // ...
        }
    }
}

完整示例代码见:OFDDocTest.java #onRenderFinished

Java
1
https://gitee.com/mummys/ofdrw.git
git@gitee.com:mummys/ofdrw.git
mummys
ofdrw
ofdrw
master

搜索帮助