Lancement d'un PDF basées sur Swing Viewer
Voici un code extract d'un petit navigateur web (nommé le willow-browser) je l'ai écrit dans JavaFX:
webEngine.locationProperty().addListener(new ChangeListener<String>() {
@Override public void changed(ObservableValue<? extends String> observableValue, String oldLoc, String newLoc) {
if (newLoc.endsWith(".pdf")) {
try {
final PDFViewer pdfViewer = new PDFViewer(false);
pdfViewer.openFile(new URL(newLoc));
} catch (Exception ex) {
// handle bad pdf url . . . most likely no action required
}
}
}
}
Le code fait l'utilisation d'une visionneuse PDF basée sur Swing 3rd party qu'elle lance pour charger l'URL. Étant donné que la visionneuse de fichiers PDF de Swing s'exécute dans une fenêtre séparée, il n'y a pas eu de problèmes d'intégration Swing/JavaFX autour de celle-ci - cela semble fonctionner. Pour le faire fonctionner, vous pouvez télécharger une copie de la source du navigateur de saule et la construire (l'exemple de fichier binaire hébergé sur le site n'inclut pas la visionneuse pdf, seules les versions sources le font). Idéalement, le code interroge le type de contenu http en plus de la chaîne uri pour déterminer que le fichier est un pdf, mais cela nécessite un peu d'accès au réseau de bas niveau qui est difficile à obtenir dans le cas de WebView . Si vous n'êtes pas soucieux d'être parfaitement précis dans la détection du contenu PDF sur de nombreux sites, il ne sera pas vraiment important si vous n'utilisez pas le type de contenu pour déterminer les fichiers PDF.
Il existe d'autres visualiseurs PDF autour desquels vous pouvez essayer si la visionneuse de fichiers PDF Swing ne vous fournit pas l'expérience que vous souhaitez, par ex. jpedalfx ou ICEpdf.
Lancer une visionneuse PDF natif
Si vous préférez, vous pouvez appeler HostServices.showDocument(uri) sur l'URL pdf et qui déclenchera pour ouvrir l'URL dans un navigateur web local, dont certains ont construit les téléspectateurs PDF ou sont configurer pour visualiser le pdf en utilisant le lecteur Acrobat.
Le code pour déterminer l'URL pour le pdf à afficher est le même dans ce cas que le code ci-dessus.
Merci pour la réponse rapide. Mon problème est que l'URL du pdf est dynamique. Les pages Web auxquelles j'accède ont été créées à l'aide des pages ADF d'Oracle. Afin d'envoyer l'url au navigateur local, j'ai besoin de connaître l'URL qui n'est pas connue jusqu'à ce que vous appuyez sur le lien. Ce n'est même pas le href de l'étiquette dans le code HTML. Enfin l'actuall url n'a pas de .pdf à la fin. Pensez-vous que votre solution ci-dessus fonctionnera? En tout cas, je vais essayer plus tard et afficher mes résultats. –
Cela peut s'avérer difficile pour vous, bonne chance. – jewelsea
Merci, j'en aurai besoin –