IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaFX Discussion :

affichage de fichier PDF


Sujet :

JavaFX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut affichage de fichier PDF
    Bonjour,

    Débarquant du .NET, je souhaite développer ma prochaine application en Java et utiliser le JavaFX pour l'interface graphique. Pourrais-je savoir s'il existe un contrôle qui permet l'affichage de fichier PDF?
    Merci!
    Merci aussi à ceux qui ont écrit les tutos. Ils sont très clairs et permettent vraiment de bien appréhender Java.

  2. #2
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 878
    Points
    22 878
    Billets dans le blog
    51
    Par défaut
    Jamais trop tente l'affichage de fichiers PDF que ce soit en Swing ou en FX. Faudra passer par un composant externe (il y en a des payants et peut-être aussi des gratuits).
    • Voir sur StackOverflow.
    • JPedal - d'apres StackOverflow fut un temps idrsolutions avait un viewer JavaFX gratuit et un pack spé JavaFX mais la je vois rien sur leur site, faudra sans doute les contacter.
    • JavaFX PDFViewer - aucune idée de l’état d'avancement de ce projet
    • Il devrait être possible d'intéger un viewer Swing
    • Il est possible d'utiliser une lib JavaScript de visu PDF et de combiner ça avec WebView pour faire un viewer PDF web embarque dans l'app (sans besoin d'avoir une co internet).
    • [...]

  3. #3
    Membre régulier Avatar de openlowcode
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2019
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2019
    Messages : 40
    Points : 94
    Points
    94
    Par défaut
    Bonjour,

    pour afficher un pdf, j'utilise le "Desktop Service" de javafx ou d'AWT pour afficher le fichier avec l'application installée sur votre PC. Evidemment, ce n'est pas interactif, mais ça suffit dans la plupart des cas, et c'est évidemment fiable. Sur Open Lowcode (mon gros projet), j'ai été obligé de revenir à AWT car l'outil javafx a mal été porté sur openjdk8 (Zulu).

    Voici un example de code avec AWT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    import java.awt.Desktop;
    ...
    Desktop.getDesktop().open(defaultfile);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    import javafx.application.HostServices;
    ...
    HostServices hostservices = Client.getApplicationHostServices();
    hostservices.showDocument(defaultfile.toURI().toString());
    Il est nécessaire d'écrire le fichier sur disque avant d'utiliser les services host / desktop. Pour cela, on a parfois besoin de retrouver le répertoire temporaire de l'OS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.getProperty("java.io.tmpdir")

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    216
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2007
    Messages : 216
    Points : 154
    Points
    154
    Par défaut
    Merci de vos réponses si rapide. Elles donnent de bonnes pistes pour avancer.
    Si je comprends bien, il existe 3 frameworks pour créer l'interface graphique: le Swing, le JavaFX et l'AWT. Peuvent-elles être combinées ensemble ? Ou bien si l'on en choisit une au départ on exclut d'office les autres ?
    Pouvez-vous aussi me dire si le "Desktop Service" prend dirrectement la totalité de la fenêtre ? Ou bien, sur un même Desktop il est possible de créer des "régions" qui afficheraient chacune un PDF distinct ?
    Merci beaucoup,
    Bien cordialement.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,
    Citation Envoyé par Paul Van Walleghem Voir le message
    Pouvez-vous aussi me dire si le "Desktop Service" prend dirrectement la totalité de la fenêtre ? Ou bien, sur un même Desktop il est possible de créer des "régions" qui afficheraient chacune un PDF distinct ?
    Il est plutôt difficile de prendre le contrôle ici, d'abord parce qu'il s'agit d'une application externe et qu'on ne sait pas à priori laquelle (savoir laquelle n'est pas impossible, mais comme la façon de le faire dépend de l'os, il faut se taper différents codes spécifiques si on veut avoir une application qui fonctionne partout(Window, MacOS et linux au minimum), et l'utilisateur peut choisir ce qu'il veut (un navigateur par exemple), donc ça peut dépendre de l'application aussi (et il y en a pléthore). Il y a bien des solutions en modifiant le PDF (en ajoutant du JavaScript), mais là aussi, on peut être limité par les possibilités du viewer pdf.
    Il vaut mieux choisir un affichage interne dans ton cas.

    A noter qu'en fonction de ce que tu veux faire (qualité d'affichage, interactivité voulue, etc), tu peux également opter pour une solution qui consiste à convertir le PDF en image (via PDFBox/PDFRenderer par exemple). Il y a aussi l'option de générer un pdf qui intégre les pdf que tu veux visualiser (j'ai fait ça par exemple pour afficher/imprimer un chemin de fer de journal).

    Personnellement, j'ai utilisé (y'a un moment) JPedal, pour convertir le PDF en BufferedImage, et ça marchait bien à l'époque (plus récemment, avec l'évolution du format PDF, le PDF est blanc (vide), obligeant une mise à jour). A noter que JPedal n'est pas censé être gratuit, et que sans licence, on a une croix rouge au dessus du PDF,il me semble).

  6. #6
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 854
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 854
    Points : 22 878
    Points
    22 878
    Billets dans le blog
    51
    Par défaut
    Déjà on oublie AWT il n'est pas possible de le mixer dans une UI FX. Comme indiqué par joel.drigo Desktop Service se content d'invoquer la visionneuse PDF de la plateforme, idéal si on veut juste ouvrir le doc, totalement inutile si on veut intégrer l'affichage dans son UI.

    Perso je partirai plus sur une visionneuse en JavaScript intégrée dans un WebView, c'est le genre d'outil auxquels les utilisateurs sont habitués de nos jours quand ils ouvrent un PDF dans leur navigateur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage de fichier PDF situé sur un serveur distant
    Par fessebleu dans le forum Langage
    Réponses: 1
    Dernier message: 24/04/2014, 16h23
  2. probleme avec l'affichage des fichier pdf dans webBrowser
    Par mounir01 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/11/2013, 11h34
  3. [GWT2.3] Affichage de fichier PDF
    Par valkeke dans le forum GWT et Vaadin
    Réponses: 6
    Dernier message: 29/09/2012, 10h05
  4. Affichage des fichier pdf ou doc sur ma page
    Par scaryfan dans le forum JSF
    Réponses: 4
    Dernier message: 25/09/2009, 13h54
  5. Affichage miniature fichier PDF
    Par Mytå_Qc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 24/09/2008, 23h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo