Откройте файл PDF на лету из приложения Java - PullRequest
36 голосов
/ 30 марта 2010

Есть ли способ получить код, открывающий файл PDF в приложении Java независимым от платформы способом? Я имею в виду использование командного файла в Windows может сделать это. Есть ли другой способ получить независимый от платформы код для открытия файлов PDF на лету?

Ответы [ 5 ]

81 голосов
/ 30 марта 2010

Я бы попробовал 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
    }
}
2 голосов
/ 31 марта 2010

Вы можете использовать Runtime для выполнения и создания сценариев, а также есть несколько программ просмотра Java PDF (например, Icepdf, JPedal, PDFRenderer).

1 голос
/ 25 мая 2016

Решение Майкла Мейера не совсем для меня. В частности, путь с пробелами завершается с ошибкой 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);
        }
    } 
0 голосов
/ 19 марта 2015

Используйте этот код для открытия определенного файла:

String cmds[] = new String[] {"cmd", "/c", "C:\\Users\\PC\\Desktop\\EA01.pdf"};
try {
    Runtime.getRuntime().exec(cmds);
}
0 голосов
/ 29 марта 2012

Используйте это, чтобы открыть PDF-файл, используя 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 и других файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...