2010-07-14 140 views
1

我想使用iText創建PDF。這樣做的方法是一個JSF bean。我想要的是,單擊JSF頁面中的commandButton,即可創建PDF。然後它必須在新窗口(或選項卡)中彈出,保持JSF頁面不變。我怎樣才能做到這一點?我知道JavaScript中有一種方法,我們可以使用window.open()打開一個新窗口,但是我想從JSF bean訪問列表以創建pdf。 謝謝。獲取使用iText創建的PDF在JSF中彈出

回答

1

target="_blank"屬性添加到<h:form>,它將提交到一個新的選項卡/窗口。

+0

感謝您的快速回復。你能解釋一下嗎?當你給target =「_ blank」時,點擊commandbutton,它會調用JSF bean並創建PDF(以Byte Array的形式)。如何使用此字節數組來顯示(如outputStream)? – Prabhat 2010-07-14 12:11:23

+0

我以爲你已經有這部分工作?到了這一點,您只需將字節連同正確的標題集一起傳輸到響應主體。無論如何,4年前,我曾經寫過一篇面向JSF的博客,但它仍然適用:http://balusc.blogspot.com/2006/05/pdf-handling.html – BalusC 2010-07-14 12:19:32

+0

嘿非常感謝您的鏈接!大幫助:) – Prabhat 2010-07-14 12:32:48

0

您可以用映射到servlet的<a href="pathToPdfServlet" target="_blank">PDF</a>替換命令按鈕。這個servlet將響應內容類型設置爲application/pdf,調用iText並將PDF寫入輸出流。

+0

感謝您的快速回復。但是,這種方法存在兩個問題。 1.它必須是commandButton(要求) 2.如何訪問servlet中的JSF bean數據? – Prabhat 2010-07-14 12:14:49