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

API standards et tierces Java Discussion :

ouvrir et lire document pdf via code java


Sujet :

API standards et tierces Java

  1. #21
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    essaye en mettant "file://" avant le chemin

  2. #22
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à herch
    C'est ce que je vient d'essayer juste avant que je voye ta réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileManager.openURL("file://Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
    mais cela me donne :
    le fichier (nommé "Java") s'ouvre et se referme et me donne l'erreur suivante
    2009-03-02 14:21:01.604 java[525] LSOpenFromURLSpec() returned -43 for application (null) path /ingencys/Bureau/Rapport_Article.pdf.
    Par contre si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileManager.openURL("file:// Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
    cela ouvre toujours le fichier nommé "java" pour le refermé aussitôt mais plus de message d'erreur.

  3. #23
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    il faut mettre file:// avant le chemin, donc je suppose qu'il faut mettre file:///Utilisateurs/ingencys/Bureau/Rapport_Article.pdf avec trois slashs ...

  4. #24
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à herch
    c'est ce que je pensé aussi mais lorsque je fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    file:///Utilisateurs/ingencys/Bureau/Rapport_Article.pdf
    j'obtiens le message d'erreur suivant :
    2009-03-02 14:31:33.999 java[533] LSOpenFromURLSpec() returned -43 for application (null) path /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf.
    Bizarre tout ça!!
    Cordialement

  5. #25
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    c'est fatiguant de proposer des choses qui ne marchent pas , mais un de plus ne fera pas de mal

    si tu essayais de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    File f = new File("chemin_pdf");
    String url = f.toURI().toString();
    FileManager.openURL(url);
    si chaque OS se mettait à faire son propre java, ce serait un cauchemar

  6. #26
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à herch
    ji suis pour rien moi si cela fonctionne pas, ça m'énerve tout autant que toi

    Donc j'ai essayé
    :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    			File f = new File("/Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
    			String url = f.toURI().toString();
    			FileManager.openURL(url);
    mais toujours ce message d'erreur (que je comprend pas!! ) :
    2009-03-02 15:15:59.005 java[573] LSOpenFromURLSpec() returned -43 for application (null) path /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf.

    Sinon j'ai essayé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    import java.io.File;
     
    import com.apple.eio.FileManager;
     
     
    public class report_2 
    {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) 
    	{
    		try
    		{
     
    			 BrowserControl bc = new BrowserControl();
    			 File f = new File("/Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
    			 bc.displayURL("file://" + f.getAbsolutePath());
     
     
     
     
    		}
     
    		catch(Exception err)
    		{
    			System.out.println("err = " + err);
    		}  
     
    	}
     
    }
    La classe BrowserControl est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    import java.io.IOException;
     
    public class BrowserControl
    {
        public void displayURL(String url)
        {
            boolean windows = isWindowsPlatform();
            String cmd = null;
            try
            {
                if (windows)
                {
     
                    cmd = WIN_PATH + " " + WIN_FLAG + " " + url;
                    Process p = Runtime.getRuntime().exec(cmd);
                }
                else
                {
     
                    cmd = UNIX_PATH + " " + UNIX_FLAG + "(" + url + ")";
                    Process p = Runtime.getRuntime().exec(cmd);
                    try
                    {
                        int exitCode = p.waitFor();
                        if (exitCode != 0)
                        {
                            cmd = UNIX_PATH + " "  + url;
                            p = Runtime.getRuntime().exec(cmd);
                        }
                    }
                    catch(InterruptedException x)
                    {
                        System.err.println("Error bringing up browser, cmd='" +
                                           cmd + "'");
                        System.err.println("Caught: " + x);
                    }
                }
            }
            catch(IOException x)
            {
                System.err.println("Could not invoke browser, command=" + cmd);
                System.err.println("Caught: " + x);
            }
        }
     
        public boolean isWindowsPlatform()
        {
            String os = System.getProperty("os.name");
            if ( os != null && os.startsWith(WIN_ID))
                return true;
            else
                return false;
     
        }
        private static final String WIN_ID = "Windows";
        private static final String WIN_PATH = "rundll32";
        private static final String WIN_FLAG = "url.dll,FileProtocolHandler";
        private static final String UNIX_PATH = "netscape";
        private static final String UNIX_FLAG = "-remote openURL";
    }
    mais bien entendu ceci ne fonctionne pas et m'affiche :
    Could not invoke browser, command=netscape -remote openURL(file:///Utilisateurs/ingencys/Bureau/Rapport_Article.pdf)
    Caught: java.io.IOException: netscape: not found
    Cordialement.

  7. #27
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    c'était pas un blâme, je voulais seulement dire que c'était frustrant que rien ne marche.

    dans plusieurs exemples sur le net, ils mettent simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Runtime.getRuntime().exec("open /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");
    sans créer de tableau, peut être que mac n'aime pas la syntaxe avec la création du tableau
    je suis à cours d'idée

  8. #28
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à herch
    c'était pas un blâme, je voulais seulement dire que c'était frustrant que rien ne marche.
    Je sais bien t'inquiète pas. Mais je suis complètement d'accord avec toi sur le fait que c'est frustrant.

    dans plusieurs exemples sur le net, ils mettent simplement

    Code :


    Runtime.getRuntime().exec("open /Utilisateurs/ingencys/Bureau/Rapport_Article.pdf");


    sans créer de tableau, peut être que mac n'aime pas la syntaxe avec la création du tableau
    Je vient d'essayer mais j'ai aucun message d'erreur mais rien ne se lance. Comme si cela tourné dans le vide.
    Bizarre!!

    je suis à cours d'idée
    Je commence également à être à court d'idée.

    Cordialement

  9. #29
    Membre actif
    Avatar de David Gimelle
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 79
    Points : 221
    Points
    221
    Par défaut
    Tu veux ouvrir ton fichier pdf pour en faire quoi ?

    Tu vuex afficher son contenu qq part, en extraire des donnees, rediriger ce flow qq part ?
    David Gimelle
    Développeur J2EE - Scrum Master
    Organisateur de http://www.soft-shake.ch/
    Blog: http://getj2ee.over-blog.com

  10. #30
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à David Gimelle
    Ce que je souhaite c'est juste ouvrir le document pdf pour voir son contenu c'est tout.

    Cordialement

  11. #31
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    sinon tu pourrais toi même faire un code qui affiche le pdf

    regarde du côté de l'api pdf-renderer
    et voici un exemple : https://pdf-renderer.dev.java.net/examples.html

  12. #32
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Et ce serait pas plus simple d'installer le jdk 1.6, la classe Desktop est quand même faites pour.
    Citation Envoyé par herch Voir le message
    salut,

    tu pourrais essayer d'ouvrir ton fichier pdf avec la méthode open de la classe Desktop

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Desktop d = Desktop.getDesktop();
    d.open(new File("chemin_pdf"));
    il l'ouvrira avec le programme correspondant, que ce soit adobe reader ou autre

  13. #33
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610

  14. #34
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    je crois que c'est ça le problème http://mac.developpez.com/faqs/mac/?...a#Java_Leopard

  15. #35
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour,

    après plusieurs recherches j'ai trouvé la faille.

    voilà le code qui fonctionne parfaitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    process = runtime.exec(new String[]{"open", "/Users/ingencys/Bureau/Rapport_Article.pdf"});
    Merci à tous pour votre aide

  16. #36
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    Bonjour,

    Il est toujours préférable d'utiliser la méthode Runtime.exec avec la signature Process exec(String[] cmdarray) que celle avec la signature Process exec(String command).

    Avec la deuxième méthode, Java doit découper lui-même command pour séparer l'exe et les différents arguments.
    Bien le bonjour chez vous
    Jowo

  17. #37
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à jowo
    Bonjour,

    merci pour ce conseil.

  18. #38
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut
    au fait, c'était quoi le problème??

    j'ai remarqué que tu as changé dans le chemin "Utilisateurs" par "Users"

  19. #39
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à herch
    au fait, c'était quoi le problème??

    j'ai remarqué que tu as changé dans le chemin "Utilisateurs" par "Users"
    voilà, je me suis rendu compte que ce n'étais pas Utilisateurs mais plutôt Users.

    Tout bête!

  20. #40
    Membre éclairé Avatar de herch
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    655
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2006
    Messages : 655
    Points : 773
    Points
    773
    Par défaut


    tant mieux

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Export .xsl rapport Birt Designer via code Java
    Par inconnu00 dans le forum BIRT
    Réponses: 2
    Dernier message: 28/05/2013, 11h19
  2. remplir fichier XML via code Java
    Par sillimi18 dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 13/05/2013, 09h46
  3. Lire fichier XML via code Java
    Par said.aghzil dans le forum Format d'échange (XML, JSON...)
    Réponses: 17
    Dernier message: 12/05/2013, 21h01
  4. ouvrir et lire un pdf ?
    Par olive30 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 23/06/2006, 18h35

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