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

Documents Java Discussion :

Conversion fichier Excel vers fichier PDF sur Mac


Sujet :

Documents Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Conversion fichier Excel vers fichier PDF sur Mac
    Bonjour,

    Je ne sais pas si je suis dans le bon forum. Je cherche à utiliser l'outil de conversion JODConverter. J'arrive à l'installer par cette commande que je tape dans le terminal shell (je développe sur Mac). OpenOffice qui est bien installé s'ouvre alors bien en arrière-plan. J'essaye alors ce code Java pour effectuer une conversion d'un fichier Excel en fichier PDF. Ca fonctionne également.

    Cependant, cette solution ne fonctionne plus lorsque j'exécute cette ligne de commande (pour ouvrir OpenOffice en arrière-plan) directement dans le code Java avant le code de conversion, par ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            try {
               Runtime.getRuntime().exec(new String[]{"soffice", "-headless", "-accept=\"socket,host=127.0.0.1,port=8100;urp;\"",
                "-nofirststartwizard"});
            } catch (IOException ex) {
                Logger.getLogger(Export.class.getName()).log(Level.SEVERE, null, ex);
            }
    Bien que OpenOffice s'ouvre également en arrière-plan par cette méthode, une exception "java.net.ConnectException: Connection refused" est levée sur la ligne :

    Par contre, si je fais l'exécution de la ligne de commande dans le code Java avec la conversion sur une plate-forme Windows, cela marche. C'est sur Mac que ça ne marche que lorsque j'externalise l'exécution de la ligne de commande manuellement dans le terminal et non dans le code Java avec le code de conversion. Est-ce une histoire de chemin dans la ligne de commande ? Pourtant, je spécifie bien le chemin absolu depuis la racine du disque dur.

    Merci pour vos réponses, si vous en avez.

  2. #2
    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
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je ne pense pas que cela soit une erreur de path, sinon tu aurais une exception à l'appel de Runtime.exec(). Vérifie que ton port est bien ouvert (et que c'est bien le port que tu demandes) et est lié à l'application soffice, avec netstat -nap. Si ce n'est pas le cas, essaye de lancer l'application par l'intermédiaire d'un open -a :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Runtime.getRuntime().exec(new String[]{"open","-a","soffice", "--args", "-headless", "-accept=\"socket,host=127.0.0.1,port=8100;urp;\"",
                "-nofirststartwizard"});
    Ou peut être en ajoutant le switch -g (pour lancer en arrière plan) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Runtime.getRuntime().exec(new String[]{"open","-g","-a","soffice", "--args", "-headless", "-accept=\"socket,host=127.0.0.1,port=8100;urp;\"",
                "-nofirststartwizard"});
    Sinon, c'est quoi soffice exactement ? un script ? un app ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Un truc de Staroffice j'imagine
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    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
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Un truc de Staroffice j'imagine
    Ça je m'en doute (de OpenOffice en l'occurence). Ce qui m'intéresse particulièrement, c'est de savoir si le fichier est un script, un exécutable, un bundle...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci pour vos réponses joel.drigo et wax78.

    Pour répondre à ta question, joel.drigo, quand on regarde l'icône du fichier "soffice" attribuée par défaut par l'OS, il s'agit d'un petit écran noir avec le texte "exec" inscrit dedans. Et d'ailleurs, quand on double-clique dessus, ça lance l'application OpenOffice. Ce qui m'amène à dire que c'est donc un exécutable.

    Sinon j'ai essayé de regarder dans la documentation et par des recherches à quoi correspondait la commande netstat -nap dont tu me parles. Je vois que ça permet de lister la liste des ports ouverts sur le réseau. Par contre, je n'ai rien trouvé sur "-nap" (c'est quoi ça ?).

    La commande "netstat" me renvoie donc une longue liste, mais je ne vois nulle part dedans l'application soffice ou le port 8100 dedans (après avoir lancé la ligne de commande).

    Mais peut-être que c'est bien une histoire de port en effet. Parce que je viens de régler un autre souci sur Mac concernant la connexion d'une application Java sur une base MySQL. En effet, pour Windows, cela fonctionne en ne spécifiant juste que le nom du serveur pour l'accès à la base de données, alors que pour Mac, il fallait que je rajoute le port, sinon ça ne marchait pas (les ports attribués doivent donc être différent). Autre remarque pour ce cas qui a peut-être joué aussi concernant le démarrage du serveur MySQL, j'utilise wamp sur Windows et MAMP sur Mac. Ce souci ne concerne donc peut-être que wamp et MAMP.

  6. #6
    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
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Harry_Potter Voir le message
    Merci pour vos réponses joel.drigo et wax78.

    Pour répondre à ta question, joel.drigo, quand on regarde l'icône du fichier "soffice" attribuée par défaut par l'OS, il s'agit d'un petit écran noir avec le texte "exec" inscrit dedans. Et d'ailleurs, quand on double-clique dessus, ça lance l'application OpenOffice. Ce qui m'amène à dire que c'est donc un exécutable.
    Dans le finder, bouton droit sur le fichier : si tu as "Afficher le contenu du paquet", c'est un app. Un script peut aussi lancer un exécutable.

    Citation Envoyé par Harry_Potter Voir le message
    Sinon j'ai essayé de regarder dans la documentation et par des recherches à quoi correspondait la commande netstat -nap dont tu me parles. Je vois que ça permet de lister la liste des ports ouverts sur le réseau. Par contre, je n'ai rien trouvé sur "-nap" (c'est quoi ça ?).
    • -a : Affiche toutes les connexions TCP actives et les ports TCP et UDP sur lesquels l'ordinateur écoute.
    • -p : Affiche le nom du programme impliqué dans la création de chaque connexion et le PID associé (Linux uniquement).
    • -n : Affiche les connexions TCP actives, cependant les adresses et les ports sont affichés au format numérique, sans tentative de résolution de nom.


    Citation Envoyé par Harry_Potter Voir le message
    La commande "netstat" me renvoie donc une longue liste, mais je ne vois nulle part dedans l'application soffice ou le port 8100 dedans (après avoir lancé la ligne de commande).
    Si tu ne vois aucune application avec le port 8100, c'est que soit l'application n'est pas lancée, soit elle ne l'est pas sur le port 8100. Si tu ne vois pas soffice, c'est soit qu'il n'est pas lancé, soit que le process ne s'appelle pas comme ça. Éventuellement, tu peux faire un netstat avant de lancer et un après, pour voir : si tu as un nouveau process, c'est celui-là. Si le port n'est pas le 8100, c'est qu'il y a un problème avec ce port (déjà utilisé peut être), ou alors c'est un problème d'environnement (des variables de l'environnement nécessaires à soffice ne sont pas automatiquement copiées dans l'environnement créé pour le lancement de la commande).
    Une alternative : essaye de lancer la commande avec ProcessBuilder au lieu de Runtime.exec().


    Citation Envoyé par Harry_Potter Voir le message
    Mais peut-être que c'est bien une histoire de port en effet. Parce que je viens de régler un autre souci sur Mac concernant la connexion d'une application Java sur une base MySQL. En effet, pour Windows, cela fonctionne en ne spécifiant juste que le nom du serveur pour l'accès à la base de données, alors que pour Mac, il fallait que je rajoute le port, sinon ça ne marchait pas (les ports attribués doivent donc être différent). Autre remarque pour ce cas qui a peut-être joué aussi concernant le démarrage du serveur MySQL, j'utilise wamp sur Windows et MAMP sur Mac. Ce souci ne concerne donc peut-être que wamp et MAMP.
    Je connais ni wamp, ni namp, donc je peux pas te répondre à ce sujet.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2014, 13h40
  2. Réponses: 2
    Dernier message: 01/06/2011, 12h14
  3. script conversion Excel vers fichier KML ou KMZ
    Par aminepop dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 26/07/2010, 12h19
  4. Réponses: 12
    Dernier message: 19/03/2010, 18h33
  5. Conversion de fichier Excel vers Fortran : comment ?
    Par gibobo dans le forum Fortran
    Réponses: 2
    Dernier message: 12/03/2007, 18h29

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