从 java 代码访问版本 0.20.5 中的 FOPs 区域树
Access to FOPs Area Tree in version 0.20.5 from java code
是否可以从 java 代码访问版本 0.20.5 中的 FOPs 区域树?
(披露:我是一名 FOP 开发人员,虽然现在很不活跃)
查看 FOP 0.20.5 分发版中的嵌入示例(我手头没有源代码),看起来 class org.apache.fop.apps.Driver
有一个 .setRenderer()
方法;创建一个 PDF,这个方法是这样调用的:
driver.setRenderer(Driver.RENDER_PDF);
我猜 Driver
class 也有一个常量用于 区域树 输出。
但是,FOP 0.20.5 真的 旧[=52=],所以我建议使用较新的版本(2.0 已在2015 年 6 月)。
使用 FOP 2.0,如 embedding documentation page 中所示,您可以使用 org.apache.fop.apps.FopFactory
获取 org.apache.fop.apps.Fop
的实例所需的输出类型,在这种情况下:
Fop fop = fopFactory.newFop(MimeConstants.MIME_FOP_AREA_TREE, out);
区域树输出(不考虑FOP版本)是一个XML文件,所以可以使用解析器获取一个Document
对象并看 在区域的几何属性上。
FOP 的最新版本(不是 0.20.5)允许use the area tree XML as input,获取(例如)PDF 输出文件:
- 使用 FOP 从源文件创建区域树 XML
- 使用您自己的代码修改区域树XML
- 再次使用 FOP 从修改后的区域树创建最终输出 XML
是否可以从 java 代码访问版本 0.20.5 中的 FOPs 区域树?
(披露:我是一名 FOP 开发人员,虽然现在很不活跃)
查看 FOP 0.20.5 分发版中的嵌入示例(我手头没有源代码),看起来 class org.apache.fop.apps.Driver
有一个 .setRenderer()
方法;创建一个 PDF,这个方法是这样调用的:
driver.setRenderer(Driver.RENDER_PDF);
我猜 Driver
class 也有一个常量用于 区域树 输出。
但是,FOP 0.20.5 真的 旧[=52=],所以我建议使用较新的版本(2.0 已在2015 年 6 月)。
使用 FOP 2.0,如 embedding documentation page 中所示,您可以使用 org.apache.fop.apps.FopFactory
获取 org.apache.fop.apps.Fop
的实例所需的输出类型,在这种情况下:
Fop fop = fopFactory.newFop(MimeConstants.MIME_FOP_AREA_TREE, out);
区域树输出(不考虑FOP版本)是一个XML文件,所以可以使用解析器获取一个Document
对象并看 在区域的几何属性上。
FOP 的最新版本(不是 0.20.5)允许use the area tree XML as input,获取(例如)PDF 输出文件:
- 使用 FOP 从源文件创建区域树 XML
- 使用您自己的代码修改区域树XML
- 再次使用 FOP 从修改后的区域树创建最终输出 XML