【问题标题】:how to open a pdf file from java?如何从java打开一个pdf文件?
【发布时间】:2011-12-24 10:52:47
【问题描述】:

我想从 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打开?

【问题讨论】:

  • 得到这个问题的代码stackoverflow.com/questions/2546968/…
  • 如果桌面可用,上述代码将在服务器上打开 PDF,您应该使用从 jsp 到 pdf 的转发或重定向来将其公开给用户
  • gertas,你能给我一个代码示例吗?

标签: java jsp pdf


【解决方案1】:

您需要指定绝对文件路径。假设公共网络内容的根目录中有 filename.pdf,应该这样做:

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

但是,此构造不会按您预期的方式工作。它将在 webserver 机器中显示 PDF 文件,而不是在 webbrowser 机器中!只有当您碰巧在物理上相同的机器上同时运行网络服务器和网络浏览器时,这才会“工作”。但是,当您将 web 应用程序发布到网络服务器和网络浏览器在物理上不同的机器上运行的互联网时,这显然不会在现实世界中发生。

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

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

让浏览器处理显示。

【讨论】:

  • 我让它以 HTML 方式工作。但是,我真的很想知道如何让它在 java/jsp 中工作。
  • 你真的需要意识到 Java/JSP 代码是在 webserver 中运行的,而不是在 webbrowser 中。所有的网络浏览器运行都是由 Java/JSP 生成和发送的 HTML/CSS/JS。如果您想在 webbrowser 中运行 Java 代码,您需要创建一个 applet 并将其作为 &lt;applet&gt; 嵌入到 HTML 页面中。但是,如果您只想向客户显示 PDF 文件,这将非常笨拙。
【解决方案2】:

你试过吗?我刚从谷歌得到这个,所以我不知道它是否有效。

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

【讨论】:

    猜你喜欢
    • 2012-02-07
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2019-08-08
    相关资源
    最近更新 更多