我有一个当前存储为内存中字符串的 XML 文档,并希望将其呈现为 PDF。换言之,PDF 内容将是一个 XML 文档。该方法呈现的 XML 是通用的——可能会发送多种类型的 XML 文档。
我很难弄清楚如何使用各种基于 Java 的框架来完成。
阿帕奇 FOP
该框架似乎需要将文档中的 XML 元素特定转换为 FOP 实体。由于所讨论的方法必须接受通用 XML,我认为这个框架不符合我的要求。
文字
我尝试使用 iText/Flying Saucer (org.xhtmlrenderer) 的组合呈现文档,虽然它确实呈现 PDF,但内容仅包含空格分隔的数据值,没有 xml 元素或属性。使用下面的代码和测试数据:
文件
<?xml version="1.0" encoding="UTF-8"?>
<root>
<elem1>value1</elem1>
<elem2>value2</elem2>
</root>
代码
File inputFile = new File(PdfGenerator.class.getResource("test.xml").getFile());
OutputStream os = new FileOutputStream("c:\\temp\\Sample.pdf");
ITextRenderer renderer = new ITextRenderer();
renderer.setDocument(inputFile);
renderer.layout();
renderer.createPDF(os);
os.close();
生成包含内容值value1 value2
但没有标签的 PDF。
我的问题是 有人可以提供一个代码片段来使用上述框架之一渲染包含 XML 内容的 PDF,还是有另一个框架更适合我的需要?
编辑:我意识到这里 提出了同样的问题,但似乎提出的解决方案需要深入了解 css 文件中传入 XML 文档的结构。