我遇到以下问题:我有一个带有XSL样式表的XML文件,当我在Web浏览器中加载它时,将该XML文件呈现为HTML中的整齐表格。现在我需要在Web浏览器中制作一个看起来与XSL样式的XML完全相同的PDF,而不需要为每个文件制作自定义FO。一切都必须用Java完成。
答案 0 :(得分:3)
我需要制作一个看起来与Web浏览器中的XSL样式XML完全相同的PDF
再想一想这个要求。诸如PDF之类的分页媒体和诸如HTML之类的非分页媒体可能看起来“足够接近”,但从不“完全相似”。如果您认为您的HTML显示在具有不同屏幕尺寸的设备上,则更为明显。
如果您稍微放松上述要求,您可能会同意XSL-FO是最佳选择。您绝对不需要为每个文件编写“自定义FO”:只编写一次XSLT,并使用它将XML转换为XSL-FO,然后使用渲染引擎处理XSL-FO PDF。简单。
答案 1 :(得分:0)
XSL-FO听起来就像你需要的那样。但是如果这不是一个选项,首先在Java中明确地对XML进行XSLT转换,然后使用一些额外的库将生成的HTML(当时是一个字符串/字节数组/ DOM /任何你想要的)转换为PDF,特技。有一些库支持HTML到PDF,例如iText。 Java中的XSLT转换非常简单。那里涉及的代码很少。