在Java EE環境中,我想要加載XML
和XSL
文件,將輸出呈現到瀏覽器窗口,並將呈現的頁面保存爲PDF。HtmlUnit並將頁面保存爲PDF
我想全部以編程方式完成。我在看HtmlUnit作爲一個無頭瀏覽器。這部分似乎工作,但HtmlUnit有任何API來調用「打印」功能或類似的功能來堅持呈現的輸出?我正在考慮將它與iText鏈接起來。
在Java EE環境中,我想要加載XML
和XSL
文件,將輸出呈現到瀏覽器窗口,並將呈現的頁面保存爲PDF。HtmlUnit並將頁面保存爲PDF
我想全部以編程方式完成。我在看HtmlUnit作爲一個無頭瀏覽器。這部分似乎工作,但HtmlUnit有任何API來調用「打印」功能或類似的功能來堅持呈現的輸出?我正在考慮將它與iText鏈接起來。
我會推薦嘗試flying-saucer,在這種情況下基本上是一個啓用CSS/XHTML的iText包裝。
我在下面寫了一個簡單的例子。不要忘記HtmlUnit和flying-saucer的必要依賴關係。
//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();
如果你用Java做報告,我強烈建議你使用Jasper Reports,它的相對易用,可以圖形設計報告,它可以採取XML作爲輸入,讓您在多種格式的報告(包括PDF)。
如果我使用飛碟生成PDF並使用iText,那麼在這種情況下,我是否需要iText的商業許可? – Teddy 2016-09-09 14:24:43