回答
只需使用通常的方式:
<iframe src="/path/to/file.pdf"></iframe>
如果你的問題是相當的PDF不地處WebContent
,而是位於某處否則在磁盤文件系統或甚至在數據庫中,那麼你基本上需要一個Servlet
,它得到它的InputStream
,並將它寫入響應的OutputStream
:
response.reset();
response.setContentType("application/pdf");
response.setContentLength(file.length());
response.setHeader("Content-disposition", "inline; filename=\"" + file.getName() + "\"");
BufferedInputStream input = null;
BufferedOutputStream output = null;
try {
input = new BufferedInputStream(new FileInputStream(file), DEFAULT_BUFFER_SIZE);
output = new BufferedOutputStream(response.getOutputStream(), DEFAULT_BUFFER_SIZE);
byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];
int length;
while ((length = input.read(buffer)) > 0) {
output.write(buffer, 0, length);
}
} finally {
close(output);
close(input);
}
這種方式可以只指向這個servlet,而不是:)例如爲:
<iframe src="/path/to/servlet/file.pdf"></iframe>
你可以找到this article類似的servlet的一個完整的例子。
也適用於JSF,假設您使用的是JSF 1.2或更新的版本。在JSF 1.1或以上,你必須包裝普通的香草HTML元素,如一個<f:verbatim>
使他們必須考慮到JSF組件樹裏面,否則他們將在輸出脫臼:
<f:verbatim><iframe src="/path/to/servlet/file.pdf"></iframe></f:verbatim>
糾正我,如果我錯了,你不必註冊servlet內的web.xml任何servlet 3.0,正確嗎?我做了這個'@WebServlet(name =「pdfHandler」,urlPatterns = {「/ pdfHandler」})',然後嘗試'
@哈里:那麼這個URL顯然是錯誤的。您是否考慮了上下文路徑?你的例子期望你的webapp部署在ROOT上。編輯:哦等一下,你的URL模式必須是'/ pdfHandler/*',以便接受具有額外路徑信息而不是請求參數的URL。 – BalusC 2011-04-21 16:16:43
是的,我實際上必須使用整個網址'http:// localhost:8080/MyNote-war/pdfHandler',我認爲'/ pdfHandler'就足夠了 – 2011-04-21 16:29:14
我建議你看看http://www.jpedal.org/。您可以將每個PDF頁面轉換爲圖像,並將它們分別發送給瀏覽器。
這種方法對您的應用程序更安全,因爲pdf永遠不會發送給客戶端。
雖然它們不是免費的:D實際上也相當昂貴 – 2011-04-21 15:56:33
**「這種方法對於您的應用程序更安全,因爲pdf永遠不會發送到客戶端「** 怎麼回事?! 並非所有在瀏覽器中顯示的內容都是第一次下載到客戶端機器上的?這包括所有的CSS,JS,圖像,HTML文件! – Nabeel 2012-07-16 20:20:40
每頁都呈現爲JPG格式,並且最終用戶不能「直接」訪問pdf。當然,他可能會利用「模擬漏洞」並下載每一頁。但是,請注意,用戶將不得不遍歷整個文檔,這可能需要一段時間。此外,您可以在服務器上註冊此信息並採取適當的措施。 – 2012-07-16 20:58:54
- 1. 如何在顯示所有pdf頁面的iframe中顯示pdf?
- 2. 如何在JSF頁面上顯示PDF
- 3. 在ASP.net中顯示PDF文檔頁面
- 4. 如何在JSF中顯示ArrayList頁面
- 5. 如何將.pdf文檔的標題顯示爲頁面標題?
- 6. 在JSF頁面或HTML中顯示Microsoft Office文檔(word,excel等)
- 7. 在iframe中顯示頁面
- 8. 如何使用SWIFT顯示多文檔PDF頁面的單頁面
- 9. JSF:如何在頁面上顯示BufferedImage?
- 10. 在ASP.Net中顯示Word文檔頁面
- 11. 在Doxygen文檔中不顯示頁面
- 12. 當在JSF中單擊按鈕時在IFrame中顯示PDF
- 13. 顯示PDF文檔
- 14. 在iframe中顯示PDF
- 15. Nw.js在iframe中顯示pdf
- 16. 在div或iFrame中顯示PDF文件
- 17. 在JSF |中顯示異常JSP頁面
- 18. 如何在線顯示微軟文檔(PPT,DOC)和PDF文檔?
- 19. 在safari中顯示pdf文檔
- 20. iframe不顯示html頁面
- 21. iframe不顯示頁面
- 22. 嘗試在SWF中顯示PDF頁面
- 23. 如何在我的aspx頁面顯示文檔
- 24. 如何在flash文件中顯示word文檔或pdf?
- 25. 如何在iframe中顯示JasperReports pdf文件?
- 26. 如何在android中使用html5在webview中顯示pdf頁面
- 27. 顯示文檔(PDF)Like SCRIBD.COM
- 28. 在IFRAME PHP顯示PDF
- 29. 如何在Android中使用pdfbox顯示PDF文檔的內容
- 30. 如何在瀏覽器中顯示可打印的PDF文檔?
那麼,jsp還是jsf? – Bozho 2009-12-21 12:14:00
以及您想在哪裏顯示它 - 在新窗口中,還是在iframe中? – Bozho 2009-12-21 12:15:08
相關:http://stackoverflow.com/questions/1776142/getoutputstream-has-already-been-called-for-this-response – skaffman 2009-12-21 12:15:50