在Java EE环境中,我想加载XML
和XSL
文件,将输出呈现到浏览器窗口,并将呈现的页面保存为PDF。
我想以编程方式完成所有操作。我在看HtmlUnit作为无头浏览器使用。这部分似乎有效,但HtmlUnit有没有任何API来调用“print”函数或类似的函数来持久化渲染输出?我想到了用iText链接它的一些方法。
答案 0 :(得分:3)
我建议尝试flying-saucer,在这种情况下基本上是支持CSS / XHTML的iText包装。
我在下面写了一个简单的例子。不要忘记HtmlUnit和飞碟的必要依赖。
//Set up a new WebClient using your favourite settings
WebClient webClient = new WebClient();
//Fetch page
HtmlPage page = webClient.getPage("url-to-target.resource");
//Set PDF target output file
String outputFile = "firstdoc.pdf";
OutputStream os = new FileOutputStream(outputFile);
//Set up flying-saucer IText based renderer
ITextRenderer renderer = new ITextRenderer();
//Create PDF
renderer.setDocumentFromString(page.asXml();
renderer.layout();
renderer.createPDF(os);
os.close();
答案 1 :(得分:-1)
如果您正在使用Java进行报告,我强烈建议您使用Jasper Reports,它相对容易使用,您可以以图形方式设计报告,它可以将XML作为输入并为您提供多种格式的报告(包括PDF)。