【发布时间】:2010-05-10 20:32:56
【问题描述】:
我想以独立于系统的方式显示来自 Java (Swing) 应用程序的 PDF 文档(前提是目标系统上正确安装了 PDF 查看器)。
我还想使用 Java WebStart 部署此 PDF 文档。
您能告诉我实现这一目标的“标准”方式吗? (我承认,我懒惰/忙于查找细节......)谢谢!
【问题讨论】:
标签: java pdf java-web-start
我想以独立于系统的方式显示来自 Java (Swing) 应用程序的 PDF 文档(前提是目标系统上正确安装了 PDF 查看器)。
我还想使用 Java WebStart 部署此 PDF 文档。
您能告诉我实现这一目标的“标准”方式吗? (我承认,我懒惰/忙于查找细节......)谢谢!
【问题讨论】:
标签: java pdf java-web-start
我假设您的意思是您希望将 PDF 与 Java Web Start 应用程序一起部署?如果是这样,您只需将 PDF 与您的 webstart 应用程序打包。当您的应用程序下载并运行时,PDF 也将出现,您的代码可以使用 getClass().getResource("/where/is/my.pdf") 类型的查找来定位 PDF,然后对其进行操作展示。您可能还需要获取代码以从资源中读取 PDF 并将其保存在临时文件 (File.createTempFile()) 中,以便 PDF 查看器可以看到它。
粗略的想法:
// Find the PDF in the Webstart App download
InputStream in = getClass().getResourceAsStream("/where/is/my.pdf");
// create a temp file to copy the pdf to
File tmpFile = File.createTempFile("my", "pdf");
OutputStream out = new FileOutputStream(tmpFile);
// stream the file from in to out ... heaps of examples on the net for doing this ("copy files")
// display the file
Desktop.getDesktop().open(tmpFile);
// ideally clean the tmp file up at some point.
【讨论】:
您可以使用Java 6 Desktop system 和Desktop.open() 为您的文档(在本例中为PDF 文件)打开相关的桌面应用程序。
【讨论】: