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 :

Créer des documents Word en Java


Sujet :

Documents Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 129
    Points : 86
    Points
    86
    Par défaut Créer des documents Word en Java
    Bonjour,

    Je cherche une API pour générer des documents Word en JAVA.
    Je dois pouvoir modifier la mise en forme et pouvoir intégrer des tableau et des images.
    ça serait bien qu'elle soit gratuite et avec une documentation (exemples).

    Merci pour vos réponses.

  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.
    même sujet ici

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 129
    Points : 86
    Points
    86
    Par défaut
    Malheureusement j'ai déjà vu...

    iText -> PDF (pas de .doc)
    Apache POI -> Aucune doc/tuto concernant la création de doc Word.

    J'ai trouvé Aspose Word mais malheureusement il est payant (et très cher !)


    D'autre solutions ?
    ou un lien avec des exemples / tutos pour Apache POI ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    le document doit être créé de toutes pièces ou bien c'est un template word que tu dois ouvrir, y injecter des donnée, et créer un document word final?

    Parce que, dans ce dernier point, la combinaison JODReport (utilisation de templates opendocument) + JODConverter (conversion de et vers opendocument de la plupart des formats bureautique), est assez efficace, tu pourrais avoir au final la chaine suivante

    template WORD -> JODConverter -> template opendocument -> JODReport -> resultat Opendocument -> JODConverter -> resultat word

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 129
    Points : 86
    Points
    86
    Par défaut
    Le problème de JODReport, c'est qu'il faut au préalable définir des templates, or mes rapport n'ont jamais le même nombre de page, certaines page sont en paysage avec des images...
    Sauf que comme je ne connait pas leur numéro de page à l'avance, comment tu fais pour faire les templates ?

    En faite j'ai déjà réaliser mon application avec iText (donc en PDF), sauf qu'on me demande que ça sorte aussi en Word.

    Comme je vois qu'il y a pas vraiment d'APIs Word, exist'il une API pour transformer un PDF en doc Word (en gardant la mise en page + image ...) ?

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    non, tous les processus que tu trouvera font l'inverse. Et pour cause, le format PDF n'est pas prévu pour de l'enchainement, des saut de pages dynamiques, de la pagination automatique etc. C'est un format ou on dit "ça, ca va exactement là, au pico poil de millimètre près", tandis que les document openoffice ou word, ce sont des format ou l'on dit "ça, ca s'enchaine derrière ça".

    adobe writer fournis une option qui permet de sauver un PDF en .doc. Le .doc que tu obtiens sera en réalité formé d'un ensemble de cadres disposés de manière absolue dans lesquel tu trouvera des bouts de texte. Inutilisable en pratique pour une modification.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 129
    Points : 86
    Points
    86
    Par défaut
    OK

    Et concernant les templates JODReport, ça à l'air super compliqué entre trouver les balises XML de OOo et la synthaxe FreeMaker.
    Et comme je l'ai dit, comment le faire dans le cas ou les pages sont dynamique ?

  8. #8
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    les balises , je peux te confirmer à l'usage, 99% du temps on s'en tappe.

    quand à la notation freemarker, elle est tout con

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ${nomDeVariableAAfficher}
    maintenant comme je l'ai dit, ca sert pour des template (le gros du document est statique, on le rempli avec des données) pas pour générer un document de A à Z entièrement par code.
    Images attachées Images attachées  

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 129
    Points : 86
    Points
    86
    Par défaut
    Oui mais si je veux créer un tableau avec un nombre de ligne variable, il faut que je fastse une balise <table> de Ooo et je dois faire un [#list ... pour FreeMaker

    Mais pour les image, comment mettre un flux ?
    JODReport, c'est bien pour faire des rapport qui ont toujours la même forme mais ou les données change.

    Dans mon cas, la forme (le corps du document) et les données changes... C'est dur de réaliser un template dans ce cas là.

  10. #10
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Aure7780 Voir le message
    Oui mais si je veux créer un tableau avec un nombre de ligne variable, il faut que je fastse une balise <table> de Ooo et je dois faire un [#list ... pour FreeMaker
    ca prend au moins 4 lignes dans le template à mettre en place et c'est document sur le site de JODReport
    Mais pour les image, comment mettre un flux ?
    Alors là, joker . Effectivement si c'est une image dynamique (exemple un graphe ou code QR) c'est une autre paire de manches, c'est pas prévu que je sache par JODReport, bien que, en pratique, ce ne serait pas si dur que ça a rajoute dans le code il me semble... Après tout, openoffice c'est du xml à tout va, suffit de rajouter les ressources qui vont bien dedans
    ou alors, mettre une image en "placeholder" dans le document, et aller editer le nom de l'image pour qu'elle contienne une directive ${item.imageName} par exemple.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <draw:image xlink:href="Pictures/${item.generatedImage}.jpg" xlink:type="simple" xlink:show="embed" xlink:actuate="onLoad"/>

    Il faudrait ensuite un deuxième passage à la main sur l'odt pour ajouter les différentes images dans Pictures/.
    JODReport, c'est bien pour faire des rapport qui ont toujours la même forme mais ou les données change.
    C'est quand même plus que ça, mais c'est surtout dans le but d'avoir des templates facilement éditable, sans devoir tripatouiller du code
    Maintenant, pour les trucs plus complexe, rien n'empeche d'ouvrir le ODT à la main et de le tripatouiller avec freemarker. Après tout, freemarker est utiliser pour faire des rendu de pages web dans de nombreux logiciel, c'est très puissant dans ses fonctionnalité. Seul inconvénient, ton template ne serait plus editable de openoffice si tu ajoute des directives entre les balises.

    Ceci dit, je n'ai pas d'autre solution à proposer que les templates.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 129
    Points : 86
    Points
    86
    Par défaut
    JODReport ça parait vraiment trop long à mettre en place...
    Si seulement Aspose pouvait être gratuit ^^.

    J'ai trouvé : http://www.convertpdftoword.net/
    Qui permet de convertir un PDF en DOC, et la mise en page me parait correcte.
    Existe t'il donc une API du même type en JAVA ?

  12. #12
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par Aure7780 Voir le message
    j'ai beau uploader tant que je veux, je trouve pas le lien pour récupérer mon doc après

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    autre option que je ne connaissais pas: ODFDOM

    http://odftoolkit.org/projects/odfdom/pages/Home


    vu le tutoriel
    http://www.langintro.com/odfdom_tuto...reate_odt.html

    ca a l'air assez facile et complet. Une fois le ODT créé, reste plus qu'à le convertir en .doc avec des outils déjà existant

  14. #14
    Membre actif Avatar de L4BiN
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2006
    Messages
    432
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2006
    Messages : 432
    Points : 209
    Points
    209
    Par défaut
    Bonjour,

    sinon tu decodes les balise word sur les fichier .doc (et pas docx ca a l'air crypté)... et ensuite tu crées un fichier que tu rempli avec BufferedWritter en mettant les balises.... bref tu fais toi meme le boulot... Si tes fichiers sont pas trop compliqué tu devrais pouvoir t'en sortir.

  15. #15
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 27
    Points
    27
    Par défaut Besoin d'infos complémentaires
    Je reviens sur ce sujet. Je suis novice dans tout ça et je dois convertir .doc en .odt via jodconverter.
    En fait mon cheminement sera le même que celui évoqué template WORD -> JODConverter -> template opendocument -> JODReport -> resultat Opendocument -> JODConverter -> resultat word

    Il faut donc que j'installe un service OpenOffice pour pouvoir utiliser JODConverter, mais c'est super long! et l'installer chez tous les clients.... je trouve ça plutôt compliqué pour une simple conversion...

    Je me suis basée sur ce tutoriel pour le service OpenOffice:
    http://www.artofsolving.com/node/11

    Y'a pas plus simple ?

    Merci pour votre aide

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    t'emmerde pas avec un service. Ton application n'a qu'à lancer depuis ton application java "soffice -headless -accept=socket,port=8100;urp;"

    Par contre, oui, pour ce genre de chose openoffice est ce qu'il y a de plus fiable. Maintenant, la conversion, en général, on la fait depuis un serveur et pas sur des postes client

  17. #17
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    Merci bcp pour ton aide.

    Par contre, apparemment jodconverter ne convertit pas le .dot en .odt car j'ai un message d'erreur qui m'indique que le .dot n'est pas reconnu.
    C'est dommage

  18. #18
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    utilise la méthode convert() qui prend en paramètre des DocumentFormat et passe le DocumentFormat correspondant au .doc dot et doc c'est la même chose si ma mémoire est bonne

  19. #19
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2011
    Messages : 26
    Points : 27
    Points
    27
    Par défaut
    Merci pour ta réponse.

    J'ai déclaré le nouveau format odt, et utilisé le convert avec documentformat, mais il me dit toujours que le format n'est pas supporté...

    J'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    static File inputFileDOT = new File("C:\\FichierDOT.dot");
    static File inputFileODT = new File("C:\\FichierODT.odt");
     
    final static DocumentFormat formatDot = new DocumentFormat("Document Modele Word", "dot", "dot");
    static DocumentFormat formatODT = registry.getFormatByFileExtension("odt");
    puis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    convert.convert(inputFileDOT, formatDot, inputFileODT, formatODT);

  20. #20
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ca ne passe pas avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    convert.convert(inputFileDOT, registry.getFormatByFileExtension("doc");, inputFileODT, formatODT);
    ?

Discussions similaires

  1. Créer des documents Word
    Par Franck.H dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/04/2015, 16h36
  2. API Java pour créer des documents Visio
    Par jeanfouille dans le forum Documents
    Réponses: 10
    Dernier message: 23/12/2010, 15h26
  3. API Java pour créer des documents Visio
    Par jeanfouille dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 23/11/2010, 14h55
  4. Créer des documents Word et Excel
    Par christophertux dans le forum C#
    Réponses: 2
    Dernier message: 28/07/2009, 17h44
  5. créer un document word en appelant des modules
    Par pierre 77930 dans le forum Word
    Réponses: 41
    Dernier message: 22/08/2008, 21h42

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