Apache FOP 和普通 XSL 样式表

Apache FOP and normal XSL stylesheet

我有一个 xml 从网络服务返回。 这个xml是快递员用的标签。 API 还指定了 XSLT 样式表。 我成功地使用 XML+XSLT 生成了 HTML 页面(我正在使用 Java)。

我需要制作一个 PDF 标签,因为它必须发送给最终用户。

是否存在使用标准 XSL 样式表而不是 XSL-FO 的方法?

是否存在其他解决方案?

你把事情弄糊涂了。 XSL-FO 是标记语言(XML 格式):

XSL-FO (XSL Formatting Objects) is a markup language for XML document formatting that is most often used to generate PDF files. XSL-FO is part of XSL (Extensible Stylesheet Language), a set of W3C technologies designed for the transformation and formatting of XML data. The other parts of XSL are XSLT and XPath. Version 1.1 of XSL-FO was published in 2006.

另一方面,

XSLT 是 [一种可能] 图灵完备的 [语言],使其在理论上能够进行任意计算 [...]:

XSLT is [...] a language for transforming XML documents into other XML documents,[1] or other formats such as HTML for web pages, plain text or XSL-FO[...]

你的问题

Does exists another solution?

可以这样回答:您正在使用可能是最好的处理方式

当然还有其他方法可以将 XML 文件转换为 PDF,但正如您描述的工作流程,这可能是一种非常好的处理方法。

如果您想对其进行优化,我建议您完全使用 XSLT(3.0 版)并尽可能减少 Java 部分。

I need to produce a PDF label because it must be sent to the final user.

XSLT 可以将您的输入 XML 转换为 HTML 和 XSL-FO - Apache FOP 可以输出为 PDF。因此,您可能只需一个 XSLT 文件即可满足您的所有需求 - 符合标准且可配置。

因此您的工作流程可能是:

XML by Courier   ->    XSLT----(1)-->   HTML
                        |
                        -------(2)-->   XSL-FO  ---(FOP)--->  PDF