Comment générer des documents Word avec Java/MySQL(Publipostage)
Fermé
cool--spirit
Messages postés
9
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
6 mai 2013
-
Modifié par cool--spirit le 2/05/2013 à 11:38
Angelo - 22 nov. 2013 à 14:39
Angelo - 22 nov. 2013 à 14:39
A voir également:
- Xdocreport
- Publipostage mail - Accueil - Word
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Suivi des modifications word - Guide
- Comment supprimer une page sur word - Guide
3 réponses
arth
Messages postés
9374
Date d'inscription
mardi 27 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2016
1 291
3 mai 2013 à 15:48
3 mai 2013 à 15:48
Il y a la librairie Apache POI pour Word qui permet de générer des documents Microsoft :
http://poi.apache.org/components/document/index.html
Avec deux/trois exemples d'utilisations ici :
http://tkgospodinov.com/writing-microsoft-word-documents-in-java-with-apache-poi/
Il n'y a pas vraiment d'exemple sur le site Apache comme il y en a pour XLS, il va donc falloir chercher un tout petit peu sauf si le site indiqué avec les exemples convient ;-)
http://poi.apache.org/components/document/index.html
Avec deux/trois exemples d'utilisations ici :
http://tkgospodinov.com/writing-microsoft-word-documents-in-java-with-apache-poi/
Il n'y a pas vraiment d'exemple sur le site Apache comme il y en a pour XLS, il va donc falloir chercher un tout petit peu sauf si le site indiqué avec les exemples convient ;-)
cool--spirit
Messages postés
9
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
6 mai 2013
6 mai 2013 à 14:57
6 mai 2013 à 14:57
Comment modifier un fichier Microsoft Word avec Java ?
Salut,
Pour avoir déjà cherché des infos sur ce sujet je peux te dire que les API qui manipulent des documents Word sont très rares et très compliqués.
L'idéal pour lequel j'ai opté est de faire ton programme en VB, par exemple avec visual studio qui permet très facilement de manipuler des fichiers word ainsi que leur contenu. Tu peux même générer ton code automatiquement en générant ton programme grâce aux macros (VBA) directement dans Word.
Pour avoir déjà cherché des infos sur ce sujet je peux te dire que les API qui manipulent des documents Word sont très rares et très compliqués.
L'idéal pour lequel j'ai opté est de faire ton programme en VB, par exemple avec visual studio qui permet très facilement de manipuler des fichiers word ainsi que leur contenu. Tu peux même générer ton code automatiquement en générant ton programme grâce aux macros (VBA) directement dans Word.
cool--spirit
Messages postés
9
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
6 mai 2013
2 mai 2013 à 13:30
2 mai 2013 à 13:30
Merci pour ta réponse :)
Cependant l'entreprise ou je Stage ne souhaite pas dépenser de l'argent, ils veulent un quelque chose de gratuit sans avoir à acheter de licence, c'est la raison pour laquelle j'ai opté pour Java/MySQL.
J'ai trouvé un API d' Apache "POI", il est pas mal, mais je ne sais pas si je peux ajouter des images dans mon document(logo).
Pour l'utilisation de .NET ça ne sera pas possible :'-(
Cependant l'entreprise ou je Stage ne souhaite pas dépenser de l'argent, ils veulent un quelque chose de gratuit sans avoir à acheter de licence, c'est la raison pour laquelle j'ai opté pour Java/MySQL.
J'ai trouvé un API d' Apache "POI", il est pas mal, mais je ne sais pas si je peux ajouter des images dans mon document(logo).
Pour l'utilisation de .NET ça ne sera pas possible :'-(
J'avais essayé cette api (notamment la classe de test TestHWPFPictures), ainsi que docx4j ou encore RTFTemplate mais j'ai pas réussi.
Le VB est un langage donc pas de soucis, visual studio est payant mais il existe des logiciels gratuit si tu cherche, comme MonoDevelop 3.0, SharpDevelop.
Moi je voulais juste ouvrir un doc word, insérer une image, enregistrer le fichier, ce qui donne :
Le VB est un langage donc pas de soucis, visual studio est payant mais il existe des logiciels gratuit si tu cherche, comme MonoDevelop 3.0, SharpDevelop.
Moi je voulais juste ouvrir un doc word, insérer une image, enregistrer le fichier, ce qui donne :
Imports Microsoft.Office.Interop Imports Microsoft.Office.Interop.Word Module InsertOleObject Sub Main() Dim WordApp As Word.Application Dim WordDoc As Word.Document WordApp = CreateObject("Word.Application") WordDoc = WordApp.Documents.Add WordApp.Selection.InlineShapes.AddPicture("C:/path/img.jpg", False, True) WordDoc.SaveAs("C:/path/docu.doc") WordDoc.Close() WordApp.Quit() End Sub End Module
cool--spirit
Messages postés
9
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
6 mai 2013
2 mai 2013 à 19:17
2 mai 2013 à 19:17
Merci Flog78 :-)
Effectivement c'est plus simple avec le VB, Hélas je ne peux plus faire marche arrière maintenant, une grande partie du projet à déjà été réaliser, il me reste que la génération de document :-/
Tu n'a pas idée si il y a une possibilité de travailler avec des templates ".doc", et remplir des champs spécifique (Toujours en Java) ??
Grand merci !
Effectivement c'est plus simple avec le VB, Hélas je ne peux plus faire marche arrière maintenant, une grande partie du projet à déjà été réaliser, il me reste que la génération de document :-/
Tu n'a pas idée si il y a une possibilité de travailler avec des templates ".doc", et remplir des champs spécifique (Toujours en Java) ??
Grand merci !
Insérer du texte dans un vrai doc word existant je ne sais pas faire.
Sinon tu peux générér un fichier texte normal et lui mettre l'extension Word mais je suppose qu'il n'y aura pas le mise en forme voulu.
Tu peux également insérer du code HTML dans un fichier texte et lui mettre une extension Word, ce qui permet en HTML de faire la mise en forme souhaitée :
Sinon tu peux générér un fichier texte normal et lui mettre l'extension Word mais je suppose qu'il n'y aura pas le mise en forme voulu.
try { FileWriter fstream = new FileWriter("D:/Desktop/out.doc"); BufferedWriter out = new BufferedWriter(fstream); out.write("Hello Java"); out.close(); } catch (Exception e) { System.err.println("Error: " + e.getMessage()); }
Tu peux également insérer du code HTML dans un fichier texte et lui mettre une extension Word, ce qui permet en HTML de faire la mise en forme souhaitée :
try { FileWriter fstream = new FileWriter("D:/Desktop/out.doc"); BufferedWriter out = new BufferedWriter(fstream); String str = "<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />" + "<center>" + "<br/>" + "<table border='0' width='800' cellpadding='3' style='border-collapse:collapse;' bgcolor='D4D5CF'>" + "<tr>" + "<td align='center' style='border:1px solid black'><b>FICHE DE TEST : </b>test</td>" + "</tr>" + "</table>" + "<br/>" + "<table border='0' width='800' cellpadding='3' style='border-collapse:collapse;'>" + "<tr bgcolor='#F4FB91' align='center'>" + "<td style='border:1px solid black'><b>Domaine</b></td>" + "<td style='border:1px solid black'><b>Paragraphe</b></td>" + "</tr>" + "<tr>" + "<td style='border:1px solid black'> Blabla</td>" + "<td style='border:1px solid black'> Blabla</td>" + "</tr>" + "</table>" + "<br/>" + "<table border='0' width='800' cellpadding='3' style='border-collapse:collapse;'>" + "<tr>" + "<td align='left'><input type='submit' value='Previous' id='modifPrevious'/></td>" + "<td align='right'><input type='submit' value=' Next ' id='modifNext'/></td>" + "</tr>" + "</table>" + "<br/>" + "</center>"; out.write(str); out.close(); } catch (Exception e) { System.err.println("Error: " + e.getMessage()); }
cool--spirit
Messages postés
9
Date d'inscription
vendredi 19 avril 2013
Statut
Membre
Dernière intervention
6 mai 2013
3 mai 2013 à 23:30
3 mai 2013 à 23:30
J'avais pas pensé à utiliser HTML, merci pour ce tuyau ;-)
3 mai 2013 à 23:34
Ce qui aurait été parfait c'est de créer un nouveau document à partir d'un templète déjà fait, avec les images et tout, et remplir que ce qu'on a besoin(Comme le Publipostage), Une idée ??
Merci bien ;-)