如何从java打开pdf文件?

时间:2011-11-08 13:10:34

标签: java jsp pdf

我想从jsp打开一个PDF文件。 jsp和PDF位于同一目录中。 我使用以下代码:

if (Desktop.isSupported()) {
    try {
        File myFile = new File("<file name>.pdf");
        Desktop.getDesktop().open(myFile);
    } catch (IOException ex) {
        // no application registered for PDFs
    }
}

但是,我收到了找不到该文件的错误。 已验证的user.dir,它指向我的tomcat / bin。 我如何参考pdf打开它?

2 个答案:

答案 0 :(得分:4)

您需要指定绝对文件路径。假设公共webcontent的根目录中有filename.pdf,这应该是:

File myFile = new File(getServletContext().getRealPath("/filename.pdf"));

但是,这种结构不会像你期望的那样工作。它将在webserver机器中显示PDF文件,而不是在webbrowser机器中显示!只有当你碰巧在物理上相同的机器上同时运行webserver和webbrowser时,这才会“正常”。但是,当你将webapp发布到互联网上时,这显然不会发生在现实世界中,网络服务器和webbrowser在物理上不同的机器上运行。

相反,您只需要直接链接到PDF文件。

<a href="filename.pdf">View PDF</a>

让浏览器处理显示。

答案 1 :(得分:0)

你试过这个吗?我只是从谷歌得到这个,所以我不知道它是否会起作用。

Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler c:\\Java-    Interview.pdf");
        p.waitFor();