有什么方法可以让代码以独立于平台的方式在Java应用程序中打开PDF文件?我的意思是在Windows中使用批处理文件可以做到这一点。有没有其他方法可以让平台独立代码在运行中打开PDF文件?从Java应用程序中即时打开PDF文件
回答
我想尝试Desktop.open(File)
,其中:
启动关联应用程序来打开该文件。
所以这段代码应该做的伎俩:
if (Desktop.isDesktopSupported()) {
try {
File myFile = new File("/path/to/file.pdf");
Desktop.getDesktop().open(myFile);
} catch (IOException ex) {
// no application registered for PDFs
}
}
您可以使用运行时执行和脚本,也有几个Java的PDF查看器在那里(即Icepdf,JPedal,PDFRenderer)。
感谢您的建议...;) – 2010-03-31 12:46:09
再次感谢,看起来像ICEpdf适合我需要的许可模式。 – Kingsolmn 2012-08-26 20:51:51
使用此用java
File file = new File(filepath);
if (file.toString().endsWith(".pdf"))
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + file);
else {
Desktop desktop = Desktop.getDesktop();
desktop.open(file);
}
此代码是用来打开PDF等文件来打开PDF文件。
该解决方案在Windows上运行良好,但不是平台独立,这是OP要求的。 – THelper 2012-09-14 13:23:32
使用此代码,打开一个特定的文件:
String cmds[] = new String[] {"cmd", "/c", "C:\\Users\\PC\\Desktop\\EA01.pdf"};
try {
Runtime.getRuntime().exec(cmds);
}
梅英东的解决方案也不太为我工作。具体而言,包含空格的路径会失败,并显示IllegalArgumentException而不是IOException。
这里对我来说是什么在起作用:
if (Desktop.isDesktopSupported()) {
try {
File theUMFile = new File(usersManualPath);
Desktop.getDesktop().open(theUMFile);
}
catch (FileNotFoundException fnf){
okDialog(msg_fnf);
theConcours.GetLogger().log(Level.SEVERE, null, fnf);
theConcours.GetLogger().info(msg_fnf);
}
catch (IllegalArgumentException fnf) {
okDialog(msg_fnf);
theConcours.GetLogger().log(Level.SEVERE, null, fnf);
theConcours.GetLogger().info(msg_fnf);
}
catch (IOException ex) {
okDialog(msg_cno);
theConcours.GetLogger().log(Level.SEVERE, null, ex);
theConcours.GetLogger().info(msg_cno);
}
}
- 1. 从网络应用程序中打开pdf文件
- 2. 从其他应用程序打开pdf
- 3. 从iOS应用程序打开PDF文件
- 4. 如何从J2ME应用程序打开pdf文件?
- 5. 从iOS应用程序打开文件查看器(PDF)
- 6. 在Xamarin Android应用程序中下载并打开PDF文件?
- 7. 在应用程序中打开pdf文件
- 8. 在iPad上的外部应用程序中打开PDF文件
- 9. 无法在应用程序中打开.pdf文件
- 10. 在控制台应用程序中打开pdf文件
- 11. 在Java桌面应用程序中打开PDF
- 12. 如何通过我的Android应用程序打开PDF文件?
- 13. 在Rails应用程序的文件系统中打开pdf文件
- 14. 从RCP应用程序的帮助菜单中打开pdf
- 15. 在Java应用程序环境中打开一个.rtx文件?
- 16. 用应用程序打开文件
- 17. 从Java中打开文件
- 18. AndroidPDFViewer - 无法在我的应用程序中打开pdf文档
- 19. 在应用程序中打开csv文件时android应用程序崩溃
- 20. 从小部件打开应用程序
- 21. 从我的应用程序打开pdf到另一个pdfviewer应用程序
- 22. 意图当应用程序在后台时立即打开应用程序-Android
- 23. 打开使用特定应用程序的MP3文件java
- 24. 使用Java上的外部应用程序打开文件
- 25. 打开pdf文件
- 26. 如何使用批处理文件打开程序时立即关闭程序?
- 27. 从Android应用程序中打开特定文件
- 28. 从命令行在Metro应用程序中打开文件
- 29. 从Keynote中的phonegap应用程序打开主题文件
- 30. 从另一个应用程序在Osmand中打开gpx文件
你是什么意思“开放”吗?你的意思是“启动Adobe Reader来显示特定的PDF文档”吗? – Kris 2010-03-30 16:47:57
对不起,我想我没有具体定义“开放”。是的,就像你想的那样。 ;) – 2010-03-31 12:45:47