Hello,
Je recherche tout type de documents concernant la manipulation de document word avec Apache POI - HWPF mon but est de traiter un fichier basé sur un template et d'y remplacer des valeurs ou des champs définis
d'avance je vous remercie
Hello,
Je recherche tout type de documents concernant la manipulation de document word avec Apache POI - HWPF mon but est de traiter un fichier basé sur un template et d'y remplacer des valeurs ou des champs définis
d'avance je vous remercie
A première vue aucune doc n'existe sur le sujet et le projet n'est pas mature que pensez-vous de open office api ?
et que pensez de WordProcessingML http://blogs.msdn.com/dotnetinterop/...d-ms-word.aspx ?
En ce qui concerne la production de document Word tu ne trouveras rien de correct en libre...
Puis pour les solutions XML de microsoft, elles ne concernent qu'un petit subset de versions d'office (2007 a la sienne, 2003 la sienne et elles sont incompatibles)....
Sinon tu peux faire du RTF avec des choses comme RTFTemplate.
Ou sinon tu as OpenDocument qui est supporté par OOO et sera supporté dans les prochaines release d'office, et qui est un standard iso (mais bon le temps de faire comprendre ça a une boite...). De plus OpenOffice propose une API Java pour l'OpenDocument. Et puis il existe des API java pour la conversion entre les différents formats: http://www.artofsolving.com/opensource/jodconverter
Bonjour,
Je suis en train de travailler sur le sujet , j'ai explorer pas mal de possibilités.
En fait l'api d'open Office te permet de faire ce que tu recherches, je viens de créer mon premier docuemnt grâce au SDK open office.
Inconvénient : doc in english and not very simple for an new user ...
Avantage : T'as pas de limite sinon le temps d'apprentissage,
Je suis en train d'essayer de coder un modèle et cela fonctionne en java.
Word = crosoft donc proprio donc not open
Open document
olivier
j ai discuté avec mon chef de projet, il m'a dit que pour que XXXX passe au solution open office il faudrait du temps ... voir jamais ils sont très attachés au standards microsoft
j ai fait une function de proof of concept pour WordML et miracle ca fonctionne très bien pour un template généré avec office 2003 et le document généré s ouvre très bien avec 2007
et c'est d'une simplicité enfantine
voici le code (pas beau)
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
61
62
63
64
65
66 package com.test; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintStream; public class WordML { public static void createPermisDeConstruireDocument() { File file = new File("C:\\fiche_1.xml"); FileInputStream fis = null; BufferedInputStream bis =null; DataInputStream dis = null; FileOutputStream out; // declare a file output object PrintStream p; // declare a print stream object try { String commune = "Fribourg"; String mimeEncoding ="8859_1"; String fileName ="123123"; out =new FileOutputStream("C:\\" + fileName + ".xml"); OutputStreamWriter outW = new OutputStreamWriter(out, mimeEncoding); // Connect print stream to the output stream p = new PrintStream( out ); fis = new FileInputStream(file); // Here BufferedInputStream is added for fast reading. bis = new BufferedInputStream(fis); dis = new DataInputStream(bis); while (dis.available() != 0) { String line = dis.readLine(); //line = XmlEncode(line); line = line.replace("$commune", commune); outW.write(line); System.out.println(line); System.out.println("\n"); } outW.flush(); outW.close(); p.close(); } catch (Exception ex) { System.out.println("Exception : " + ex.getMessage()); } finally { try{ fis.close(); dis.close(); } catch (Exception ex) { System.out.println("Exception : " + ex.getMessage()); } } } public static void main (String [] args) { WordML.createPermisDeConstruireDocument(); } }
Bonjour Alexandre,
Je me permet de te citer :
Tu pourras dire à ton chef de projet et à tes clients que Microsoft n'est pas un standard, c'est une entreprise multinationale qui n'a qu'un seul et unique intérêt : faire du profit sur le dos de ses clients.
A ton chef de projet de voir s'il veut que tes développements (qui coûtent cher) ne soient plus valable dans 2 ou 3 ans, car M$ aura d'ici-là sorti encore une nouvelle version de ses produits... et faire dépendre son projet du degré d'avarice d'une firme, c'est assez... comment dire... dangereux, non.
A ta décharge, je pense que le mot formats était vraiment le mot le plus juste dans ce contexte.
Quant à ta classe, elle ne fait qu'écrire des données prise dans un fichier xml vers un autre fichier xml...
La pertinence de la manipulation serait au moins d'enregistrer le dit document avec l'extension consacrée (.doc) et d'y mettre le contenu de ton template word (avec les subsitutions/insertions aux bons emplacements).
Ceux qui ne sont pas habitués à Java (ou Perl ou Python ou PHP et autres langages libres) ne sont pas très familiers de ce que le mot liberté signifie en développement. Mais il est vrai que ta méthode est bien la bonne, il suffit d'utiliser les classes de base de gestion des flux en java pour y arriver tranquillement.
Bien cordialement.
Tu as tout à fait raison c'était bien de format ce dont je parlais je vais étendre mon petit proof of concept à d'autres utilisation
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager