Existe-t-il un moyen d'avoir un code qui ouvre un fichier PDF en Java d'une manière indépendante de la plate-forme? Je veux dire que l'utilisation d'un fichier batch dans Windows pourrait faire Existe-t-il un autre moyen d'avoir un code indépendant de la plate-forme pour ouvrir les fichiers PDF à la volée?
J'essaierais Desktop.open(File)
, ce 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
}
}
Vous pouvez utiliser Runtime pour exécuter et scripter et il y a aussi plusieurs Java PDF téléspectateurs là-bas (ie Icepdf, JPedal, PDFRenderer).
La solution de Michael Meyer n'a pas vraiment fonctionné pour moi. Plus précisément, un chemin avec des espaces échoue avec une exception IllegalArgumentException plutôt qu'avec une exception 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);
}
}
Utilisez-le 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 autres fichiers.