我遇到了SWT浏览器小部件的一个奇怪问题。 我使用opal小部件中的“过渡复合”小部件开发了一个多页面应用程序。 在我的上一个窗口中,我需要显示一个pdf。 我一直在网上寻找免费的开源解决方案,我唯一可以解决的是IcePdf,但页面的重新定位并不是很好。 然后我发现我可以使用浏览器小部件来显示pdf。 我使用以下代码创建了一个新项目:
shell = new Shell();
shell.setSize(l, h);
Browser browser = new Browser(shell, SWT.NONE);
browser.setBounds(xb, yb, lb, hb);
browser.setUrl("file://" + pdfPath);
并且效果很好。 但是如果我在实际应用程序中运行相同的代码,它会将pdf打开到adobe reader而不是应用程序本身。
有没有人注意过这个问题?如果是,我该如何解决?
谢谢你的建议, Stefano Franchini
答案 0 :(得分:1)
我认为有一个需要更改的Internet Explorer或adobe reader设置。
这可能会有所帮助:
如果您希望浏览器在单独的Acrobat窗口中打开PDF文件,请将浏览器配置为使用Acrobat或Adobe Reader作为帮助应用程序。然后,当您在Internet Explorer中选择PDF文件时,浏览器将在Acrobat窗口而不是浏览器窗口中打开PDF文件。
配置浏览器以使用Acrobat或Adobe Reader打开PDF文件:
注意:下次选择PDF文件的链接时,浏览器可能会提示您打开或保存文件。如果选择打开文件,浏览器将在您指定的帮助应用程序中打开该文件。如果选择保存文件,浏览器会将文件下载到硬盘。
答案 1 :(得分:0)
在Windows 7上运行Eclipse 2019-03和OpenJDK 11(64位)时,不同的IE设置为我解决了此问题:
browser.setURL()
作为要显示的PDF文件的绝对路径的SWT浏览器实例。设置URL /路径后,别忘了调用browser.update()
,以便重新呈现SWT组件。(我知道,这个问题已经存在很多年了,但是我只是碰到了这个问题,想出了一个新的解决方案,所以在SO的其他地方找不到,所以想抓住这个问题,希望可以帮助其他人可能会在他们的工作中遇到这个问题)。