簡體   English   中英

如何在iFrame的jsf頁面中顯示pdf文檔

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM