【发布时间】:2011-10-18 11:58:37
【问题描述】:
我有以下问题:我有一个带有 XSL 样式表的 XML 文件,当我在 Web 浏览器中加载它时,它会将这个 XML 文件呈现为 HTML 中的整洁表格。现在我需要在 Web 浏览器中制作一个看起来与 XSL 样式的 XML 完全一样的 PDF,而无需为每个文件制作自定义 FO。一切都必须用 Java 完成。
【问题讨论】:
我有以下问题:我有一个带有 XSL 样式表的 XML 文件,当我在 Web 浏览器中加载它时,它会将这个 XML 文件呈现为 HTML 中的整洁表格。现在我需要在 Web 浏览器中制作一个看起来与 XSL 样式的 XML 完全一样的 PDF,而无需为每个文件制作自定义 FO。一切都必须用 Java 完成。
【问题讨论】:
我需要在 Web 浏览器中制作一个看起来与 XSL 样式的 XML 完全一样的 PDF
再想想这个要求。诸如 PDF 之类的分页媒体和诸如 HTML 之类的非分页媒体可能只是看起来“足够接近”,但绝不会彼此“完全相似”。如果您考虑将 HTML 显示在具有不同屏幕尺寸的设备上,这一点会更加明显。
如果您稍微放宽上述要求,您可能会同意 XSL-FO 是最佳选择。您绝对不需要为每个文件编写“自定义 FO”:只需编写一次 XSLT,并使用它即时将您的 XML 转换为 XSL-FO,然后使用渲染引擎将 XSL-FO 处理为PDF格式。很简单。
【讨论】:
XSL-FO 听起来确实正是您所需要的。但是,如果这不是一个选项,首先在 Java 中明确地对 XML 进行 XSLT 转换,然后使用一些额外的库将生成的 HTML(到那时是字符串/字节数组/DOM/任何你想要的)转换为 PDF诡计。有一些库支持 HTML 到 PDF,例如 iText。 Java 中的 XSLT 转换非常简单。那里涉及的代码很少。
【讨论】: