可以使用XSL-FO创建许多文档吗?

时间:2013-06-14 12:02:57

标签: xml xsl-fo

我正在研究与将数据格式化为文档形式相关的各种技术。有许多软件平台可以这样做,但大多数都非常昂贵。

我偶然发现了XSL-FO并且一直在深入研究它是否符合我的需求。但到目前为止,我还没能回答这个问题。它可以用于在单个流中创建多个文档吗?

FOP可以创建AFP(我公司用于大规模打印的打印语言)并且它工作得非常好(我需要做更多的字体配置才能使其真正值得)。但我还没有看到任何证据表明XSL-FO可以在一个打印流中创建数百,数千或者数十万个文档(语句)。

对于知道FOP的人来说还有一个问题......它可以在AFP流中索引(TLE,NOP等)文档吗?

其他信息:

我没有任何代码可以展示/分享,因为这个小项目正处于研究阶段。我非常想知道XSL-FO是否能够满足我的需求,然后我将这4-6个月的时间花在书籍,教程和手册中,将它们编码在一起,却发现它无法满足我的需求。

我正在寻找的是一种在单个打印流(AFP)中创建多个文档以便假脱机到商业打印机的方法。我发现fop是一个基于Java的开源转换器,用于将XSL-FO转换为AFP(或PDF,或许多其他输出)。

出于这些目的,文档可以定义如下:从第1页开始的一组页面/印象。

到目前为止,我还没有看到XSL-FO如何能够一次生成除单个文档之外的任何内容。当然,我对XSL的尝试还处于起步阶段,这就是我在这里寻求答案的原因。

这个问题的一些潜在答案可能会让我感到惊讶:

“是的,XSL-FO可以做到这一点......查看 fo:new-document 标签。”

“不,XSL-FO旨在创建单个文档。要生成多个文档,您需要使用第三方软件或对XSL-FO进行后处理以”伪造“多个文档。”

如果答案是肯定的,那么我会继续这样做。如果答案是肯定的,但它需要花钱,那么我将寻求其他途径,这些途径也需要花钱但是更容易开发。如果答案是否定的,那么我将再次寻求其他途径。

我希望这能澄清我的疑问。有人对我有一些好的见解吗?

更多信息:

这看起来很有希望:http://xmlgraphics.apache.org/fop/trunk/output.html#afp

1 个答案:

答案 0 :(得分:1)

当然可以使用XSL FO来做这样的事情:(1)从单个大型(重复文档)生成许多单独的文档,(2)从单个大型文档生成大型文档或(3)甚至组合这......同时。请参阅本白皮书中发布的概念:

http://www.renderx.com/solutions/large_report_formatting.html

详细信息如下:

PDF Report

这些适用于RenderX及其运作方式。在这样的解决方案中,单个XML输入可以代表数千个重复发票。您可以分块,发送到在单独的线程,JVM中运行的组合引擎的多个同时线程,甚至在不同的机器上进行组装,或者组装或创建所需输出的任何需要。因为您可以并行化组合步骤,所以您可以使用线程,核心,CPU和机器进行扩展,甚至可以获得所需的性能。这些方法已在全世界的主要组织中生产。

我们不评估或测试FOP,所提出的概念需要一个完全线程安全的渲染器,就像XEP一样,渲染线程控制器就像EnMasse一样。 XEP是一个FO渲染器,支持带有TLE等的AFP作为一种输出格式(也包括PDF,PDF表格,Postscript,XPS,PPML,SVG,XHTML ......)。