[英]how to display a pdf document in jsf page in iFrame
任何人都可以幫我在iframe的JSF頁面中顯示PDF文檔嗎?
提前致謝,
蘇雷什
只需按常規方式使用<iframe>
:
<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>
您可以在本文中找到類似servlet的完整示例。
假設您使用的是JSF 1.2或更新版本, <iframe>
在JSF中也可以正常工作。 在JSF 1.1或更早版本中,您必須在<f:verbatim>
包含普通的HTML元素,例如<iframe>
<f:verbatim>
以便將它們放入JSF組件樹中,否則它們將在輸出中脫位:
<f:verbatim><iframe src="/path/to/servlet/file.pdf"></iframe></f:verbatim>
我建議你看看http://www.jpedal.org/ 。 您可以將每個pdf頁面轉換為圖像,並將它們單獨傳送到瀏覽器。
這種方法對您的應用程序更安全,因為pdf永遠不會發送到客戶端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.