【问题标题】:Apache FOP and normal XSL stylesheetApache FOP 和普通 XSL 样式表
【发布时间】:2020-03-13 15:12:09
【问题描述】:

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

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

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

是否存在其他解决方案?

【问题讨论】:

  • XSLT 可以生成纯文本文件,而不是 PDF 文档。您可以使用 XSLT 生成可用于生成 PDF 的 XSL-FO 文档。另一种解决方案是从浏览器打印到 PDF。
  • “标准样式表”是什么意思?可以通过 XSL-FO 以外的路径(例如通过 CSS 分页媒体)生成 PDF,但它并不比 XSL-FO 路径更“标准”(也并不容易)。

标签: xml xslt apache-fop


【解决方案1】:

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

XSL-FO(XSL 格式化对象)是一种用于 XML 文档格式化的标记语言,最常用于生成 PDF 文件。 XSL-FO 是 XSL(可扩展样式表语言)的一部分,XSL 是一组 W3C 技术,专为 XML 数据的转换和格式化而设计。 XSL 的其他部分是 XSLT 和 XPath。 XSL-FO 1.1 版于 2006 年发布。

另一方面,XSLT [可能] 图灵完备 [语言],使其理论上能够进行任意计算 [...]:

XSLT 是 [...] 一种用于将 XML 文档转换为其他 XML 文档 [1] 或其他格式的语言,例如用于网页的 HTML、纯文本或 XSL-FO[...]

你的问题

是否存在其他解决方案?

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

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

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

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

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

所以您的工作流程可能是:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2018-06-22
    • 2021-01-16
    • 2017-11-16
    • 1970-01-01
    相关资源
    最近更新 更多