如何在JSF页面上显示PDF

  • 本文关键字:显示 PDF JSF html jsf pdf
  • 更新时间 :
  • 英文 :


我想在JSF页面上显示一个PDF文件,我已经检查了如何在iFrame中在JSF页面中显示PDF文档,但是我不想在iFrame中显示它(因为它将生成滚动条)。我只是想将pdf显示到像图像一样的页面上,并能够为它提供宽度和高度。

编辑你好BalusC。我仍然不能显示pdf内联。下面是我的代码

@WebServlet(name = "pdfHandler", urlPatterns = {"/pdfHandler/*"})
public class pdfHandler extends HttpServlet {
    private static final int DEFAULT_BUFFER_SIZE = 10240;
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        String requestedFile = request.getPathInfo();
        File file = new File("/Users/KingdomHeart/Downloads/Test/pdf/" + requestedFile);
        response.reset();
        response.setContentType("application/pdf");
        response.setBufferSize(DEFAULT_BUFFER_SIZE);
        response.setHeader("Content-Length", String.valueOf(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{
            output.close();
            input.close();
        }
    }
    ...
}

仍然提示我下载pdf文件。顺便说一下,下载到我电脑上的pdf文件是正确的。你能发现什么问题吗?

没有真正的另一种方式(期望HTML <object>标签会有相同的"问题"),但你可以给<iframe>一个固定的大小,并禁用滚动,如下所示:

<iframe src="foo.pdf" width="600" height="400" scrolling="no"></iframe>

如果你还想隐藏(默认)边框,添加frameBorder="0"以及

您应该看看ICEpdf,它在服务器端创建图像,提供缩放和其他控件(演示)。

试着进入adobereader,在选项对话框中有web设置,您可以在其中指示您始终希望在浏览器中打开PDF类型的文档。

不幸的是,这是一个客户端修复,没有考虑到其他PDF阅读器。

你想要的是不可能的。浏览器不是魔法,他们只是显示不同类型的文档,其中一些(HTML)可以嵌入插件(flash, java)和其他文档内的iframe (pdf, flash, HTML)提供的对象。如果要显示pdf缩微图,则必须在服务器上生成图像。

相关内容

  • 没有找到相关文章

最新更新