Bonjour,
Je cherche un moyen de modifier un fichier word afin d'en remplacer des balises par des valeurs que je définit dans un programme.
Je lit un document de base (.doc déja mis en forme) contenant des balises et lorsque j'en croise une, je la remplace par la valeur correspondante, puis écrit dans un nouveau document.
Le problème c'est vraisemblablement l'encodage. Exemple:
devient
Code : Sélectionner tout - Visualiser dans une fenêtre à part ÐÏࡱáDu coup le document crée est illisible par Word.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ��ࡱ�
J'utilise un code tout simple, à savoir:
Si quelqu'un sait comment résoudre ce soucis d'encodage, merci d'avance.
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 try{ BufferedReader buff = new BufferedReader(new FileReader("C:/Test/Rapport de base.doc")); PrintWriter out = new PrintWriter(new FileWriter("C:/Test/Rapport.doc")); try { String line; while ((line = buff.readLine()) != null) { if (line.contains("#nom")) { System.out.println("Avant = " + line); line = line.replace("#nom", doc.getAuteur()); System.out.println("Apres =" + line); } out.println(line); } } finally { buff.close(); out.close(); } } catch (IOException ioe) { System.out.println("Erreur --" + ioe.toString()); }
PS: J'ai essayé de créer un doc à partir de rien à l'aide des API POI ou JavaToWord, mais c'est très long et compliqué de faire de la mise en page "funky". C'est pourquoi il est beaucoup plus simple de partir du document fait et remplacer les champs qui m'intéressent.
Au passage, JavaToWord est sympathique mais peu complet, tandis que POI (pour les fichiers word, je précise) semble complet mais est repoussant à l'utilisation, sans doc et sans exemples.
Partager