在Java Swing应用程序中创建联机帮助-使用pdf用户文档

在Java Swing应用程序中创建联机帮助-使用pdf用户文档,java,pdf,Java,Pdf,我正在尝试将一些用户文档链接到我的JavaSwing应用程序。用户文档是pdf,我希望能够在我的应用程序中单击一个按钮,打开某种pdf渲染器来显示我的userdoc.pdf 我不想使用runtime exec命令 我尝试了以下方法,但没有多大成功-- pdfRenderer——这似乎不适用于当前版本的PDF(似乎需要较旧的PDF) acrobat viewer--我不断收到字体错误(显示文档,但每次转到新页面时,都会收到错误) JPedal pdfHelp-这听起来很酷,如果它能工作,对我来说是

我正在尝试将一些用户文档链接到我的JavaSwing应用程序。用户文档是pdf,我希望能够在我的应用程序中单击一个按钮,打开某种pdf渲染器来显示我的userdoc.pdf

我不想使用runtime exec命令

我尝试了以下方法,但没有多大成功--

pdfRenderer——这似乎不适用于当前版本的PDF(似乎需要较旧的PDF)

acrobat viewer--我不断收到字体错误(显示文档,但每次转到新页面时,都会收到错误)


JPedal pdfHelp-这听起来很酷,如果它能工作,对我来说是最好的。但由于某种原因,我无法在这里打开任何文件。窗口中没有加载的pdf文件(pdfHelp面板会显示承诺的pdf列表,但当我右键单击其中一个并说“OpenPDF”时,我只会看到一个进度条,文件没有加载,我尝试了一些文件并检查了文件权限)

JPedal SimpleViewer——到目前为止,这一次似乎是最有希望的。我想删除这个查看器的一些功能,但是我无法编辑xml来完成这项工作。当我编辑xml时,似乎会出现xml解析错误

有人做过类似的事情吗?请帮忙

另外,我需要这个在Linux机器上工作(IcePDF似乎只适用于Windows)。我更喜欢免费的东西

Java的API能满足您的要求吗?它确实会启动另一个进程,但不是通过调用Runtime.exec()来启动的


桌面API使用主机操作系统的文件关联来启动与特定文件类型关联的应用程序。

我选择了一个类似的用例-它并不适用于所有PDF,但运行良好,正在积极开发中。从PDDocument中,您可以获得PDPage对象的列表,这些对象有一个convertToImage()方法,该方法为您提供了一个可以在屏幕上绘制的BuffereImage。我从pdf渲染器切换到这个,因为我觉得它总体上提供了更好的结果。

PdfHelp已转移到其自己的域,并已更新以修复您的问题并添加一些其他改进…

更新:来自IDR solutions(JPedal的创建者)的PdfHelp现在可以工作了。最新版本(4.0)修复了这个错误,它可以读取我的pdf文件(我确信会有更多最新的pdf文件)。今天只是在玩这个产品,它很棒!很少有小错误,但我真的很欣赏马克·斯蒂芬斯(?)对第一个错误的反应有多快。干得好,伙计们

您是否尝试过直接打开web浏览器而不是PDF?如果浏览器有一个PDF浏览器插件,这可能会起作用。这似乎是一种迂回的方法。我不需要使用运行时命令来打开web浏览器吗?“JPedal pdfHelp-这听起来很酷,如果它能工作,对我来说是最好的。但是由于某些原因,我无法在这里打开任何文件。我在窗口中没有加载的pdf文件”更新:JPedal的人承诺了一个新版本(4.0)下周,它将能够打开许多不同类型的文件。我希望我的应用程序能够在不同的用户环境下运行。对于桌面API,如果用户的机器不支持桌面API,会发生什么情况?(让用户下载任何东西都不是一个选项)谢谢马克。这太棒了!有一些小错误,但在我的研究中,这是从Java查看pdf文件的最佳产品。它也很容易实现!链接给点到一些波兰语言的伟哥推广网站更新:IDR solutions已经修复了我在上一篇文章中提到的缺陷,到目前为止,这是最适合我需要的pdf在线帮助解决方案