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

Java Discussion :

Java et les fichiers pdf


Sujet :

Java

  1. #1
    Membre régulier
    Femme Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Points : 77
    Points
    77
    Par défaut Java et les fichiers pdf
    Salut tous,

    Je veux appeler un document pdf lors d'un simple clic sur un bouton de mon application implémentée en java.
    Est ce qu'il y a quelqu'un qui peut m'aider? Comment faire SVP??

    Merci d'avance..

  2. #2
    Expert confirmé
    Avatar de slim_java
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2008
    Messages
    2 272
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2 272
    Points : 4 539
    Points
    4 539
    Par défaut
    salut.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String[] cmd= {"chemin_complet_exécutable_acrobat_reader  \\  comme séparateur","ton_fichier.pdf"};
    Runtime.getRuntime().exec(cmd);

  3. #3
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 571
    Points : 15 538
    Points
    15 538
    Par défaut
    Si tu veux ouvrir le fichier avec l'application par défaut du système et que tu as une version de JavaSE 6, ou plus, la meilleure solution est d'utiliser la classe Desktop.

    Tu peux également utiliser la bibliothèque JDIC(bibliothèque native)

    Sinon il te faut utiliser Runtime.exec() pour appeller les commandes systèmes "cmd /c start", "open", "xdg-open" suivant ton système (respectivement windows, macos x et linux).

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Si tu veux ouvrir le fichier avec l'application par défaut du système et que tu as une version de JavaSE 6, ou plus, la meilleure solution est d'utiliser la classe Desktop.
    J'ai essayé par curiosité avec un pdf, un doc ou un txt, mais aucun résultat.
    Malgré que j'obtienne true true en sortie...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public static void main(String[] args) throws IOException {
    System.out.println(Desktop.isDesktopSupported());		System.out.println(Desktop.getDesktop().isSupported(Action.OPEN));
     
    Desktop.getDesktop().open(new File("C:\\a.txt"));
    }

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Si tu veux ouvrir le fichier avec l'application par défaut du système et que tu as une version de JavaSE 6, ou plus, la meilleure solution est d'utiliser la classe Desktop.
    J'ai essayé par curiosité avec un pdf, un doc ou un txt, mais aucun résultat.
    Malgré que j'obtienne en sortie :
    true
    true

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public static void main(String[] args) throws IOException {
    System.out.println(Desktop.isDesktopSupported());
    System.out.println(Desktop.getDesktop().isSupported(Action.OPEN));
     
    Desktop.getDesktop().open(new File("C:\\a.txt"));
    }
    Pour info, je suis sur Win XP SP2 32-bits.

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 559
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 621
    Points
    21 621
    Par défaut
    C'est pourtant comme ça que ça marche. Au point où tu en es, je te conseille :
    - De vérifier que c'est bien ce programme que tu lances (ça donne quoi si tu ajoutes System.out.println("zorglub") ?)
    - De vérifier que tu as un fichier a.txt et non pas a.txt.txt à la racine de C:

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Citation Envoyé par thelvin Voir le message
    C'est pourtant comme ça que ça marche. Au point où tu en es, je te conseille :
    - De vérifier que c'est bien ce programme que tu lances (ça donne quoi si tu ajoutes System.out.println("zorglub") ?)
    - De vérifier que tu as un fichier a.txt et non pas a.txt.txt à la racine de C:
    Ca m'aide pas trop... Je pense que l'api doit être buggé selon les versions des OS, l'antivirus, les firewalls ou encore les applications opèrant sur les fichiers.
    Sinon le fichier existe bel et bien.

    Pour le montrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    System.out.println(Desktop.isDesktopSupported());
    System.out.println(Desktop.getDesktop().isSupported(Action.OPEN));
    System.out.println(new File("C:\\a.txt").exists());
    Desktop.getDesktop().open(new File("C:\\a.txt"));
    J'obtiens 3 true maintenant ...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    En testant ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Runtime.getRuntime().exec("cmd.exe /c C:\\a.txt");
    mon fichier s'ouvre bien.

    J'ai regardé sur Google et apparemment, d'autres personnes ont le même problème :
    -http://java.itags.org/java-core-gui-apis/32249/
    -http://forums.sun.com/thread.jspa?threadID=5338022
    -http://forums.java.net/jive/thread.j...ssageID=198634

    En tous les cas, ce n'est pas une api que je préconiserais pour une appli en production vu sa fiabilité...

  9. #9
    Membre régulier
    Femme Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Bonsoir,

    Merci tous pour toute information. Vraiment super cette intéraction

    @thebloodyman: J'ai suivi votre démarche Mr. mais le système n'a pas accepté cette ligne:
    System.out.println(Desktop.getDesktop().isSupported(Action.OPEN));
    Le problème s'était avec OPEN. Est ce que vous pouvez svp m'expliquer mieux que c'est cet OPEN?
    Remarque: en testant
    Runtime.getRuntime().exec("cmd.exe /c C:\\a.txt");
    rien n'a passé. Je sais pas s'il me faut quelques conditions avant!!

    Merci beaucoup

  10. #10
    Membre régulier
    Femme Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    Ok ça bien marchait en utilisant ce lien http://forums.sun.com/thread.jspa?threadID=5338022
    Mai comme même merci de me répondre à ma précédente question..

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 476
    Points : 595
    Points
    595
    Par défaut
    Citation Envoyé par a-sana Voir le message
    Bonsoir,
    Le problème s'était avec OPEN. Est ce que vous pouvez svp m'expliquer mieux que c'est cet OPEN?
    Merci beaucoup
    Desktop.getDesktop().isSupported(Action.OPEN)) teste si l'action d'ouvrir un fichier est supportée par le système d'exploitation en cours d'utilisation.
    Si c'est supportée elle te renvoie true, sinon false.

    Tu as la documentation ici :
    http://java.sun.com/javase/6/docs/ap...t/Desktop.html

  12. #12
    Membre régulier
    Femme Profil pro
    Inscrit en
    Février 2010
    Messages
    110
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2010
    Messages : 110
    Points : 77
    Points
    77
    Par défaut
    merci infiniment

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

Discussions similaires

  1. HibernateUtil.java et les fichiers de Mapping
    Par sup dans le forum Hibernate
    Réponses: 4
    Dernier message: 17/09/2007, 11h14
  2. Composant pour gérer les fichiers PDF
    Par BXDSPORT dans le forum Delphi
    Réponses: 4
    Dernier message: 27/05/2007, 08h53
  3. Java et les fichiers
    Par gagalive dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 07/07/2006, 07h15
  4. [C#] Authentification sur les fichiers Pdf
    Par ensisoft dans le forum ASP.NET
    Réponses: 14
    Dernier message: 04/05/2004, 12h10

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