Ouvrir un fichier PDF à la volée à partir d'une application Java


Existe-t-il un moyen d'avoir un code qui ouvre un fichier PDF dans une application Java de manière indépendante de la plate-forme? Je veux dire utiliser un fichier batch dans Windows pourrait le faire. Existe-t-il un autre moyen d'avoir un code indépendant de la plate-forme pour ouvrir des fichiers PDF à la volée?

Author: informatik01, 2010-03-30

5 answers

Je vais l'essayer Desktop.open(File), qui:

Lance l'application associée pour ouvrir le fichier.

Donc, ce code devrait faire l'affaire:

if (Desktop.isDesktopSupported()) {
    try {
        File myFile = new File("/path/to/file.pdf");
        Desktop.getDesktop().open(myFile);
    } catch (IOException ex) {
        // no application registered for PDFs
    }
}
 73
Author: Michael Myers, 2012-05-16 17:33:08

Vous pouvez utiliser Runtime pour exécuter et script et il existe également plusieurs visualiseurs Java PDF (c'est-à-dire Icepdf, JPedal, PDFRenderer).

 2
Author: mark stephens, 2010-03-31 08:23:14

La solution de Michael Meyer n'a pas tout à fait fonctionné pour moi. Plus précisément, un chemin avec des espaces échoue avec une IllegalArgumentException plutôt qu'une IOException.

Voici ce qui fonctionne pour moi:

    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
Author: Ed S, 2016-05-25 16:26:14

Utilisez ceci pour ouvrir un fichier pdf en utilisant 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);
}

Ce code est utilisé pour ouvrir votre PDF et d'autres fichiers.

 0
Author: amit, 2012-03-29 10:09:04

Utiliser ce code pour ouvrir un fichier spécifique:

String cmds[] = new String[] {"cmd", "/c", "C:\\Users\\PC\\Desktop\\EA01.pdf"};
try {
    Runtime.getRuntime().exec(cmds);
}
 -3
Author: Nimo ismail, 2015-03-19 19:15:40