2013-03-11 437 views
2

在Java EE環境中,我想要加載XMLXSL文件,將輸出呈現到瀏覽器窗口,並將呈現的頁面保存爲PDF。HtmlUnit並將頁面保存爲PDF

我想全部以編程方式完成。我在看HtmlUnit作爲一個無頭瀏覽器。這部分似乎工作,但HtmlUnit有任何API來調用「打印」功能或類似的功能來堅持呈現的輸出?我正在考慮將它與iText鏈接起來。

回答

3

我會推薦嘗試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(); 
+0

如果我使用飛碟生成PDF並使用iText,那麼在這種情況下,我是否需要iText的商業許可? – Teddy 2016-09-09 14:24:43

-1

如果你用Java做報告,我強烈建議你使用Jasper Reports,它的相對易用,可以圖形設計報告,它可以採取XML作爲輸入,讓您在多種格式的報告(包括PDF)。