J'ai 2 problèmes avec l'api POI pour modifier un document Word:
1) Après avoir sauvegarder mon "HWPFDocument" que j'ai récupérer d'un fichier .doc, dans un autre fichier .doc, le style de mes paragraphes n'est plus correct (j'ai le même de partout, celui du premier paragraphe)
Code : Tout sélectionner
File iFile = new File("D:/empty.doc");
File oFile = new File("D:/doc.doc");
InputStream fis = new FileInputStream(iFile);
POIFSFileSystem fs = null;
HWPFDocument doc = null;
try {
fs = new POIFSFileSystem(fis);
} finally {
fis.close();
}
doc = new HWPFDocument(fs);
OutputStream out = new FileOutputStream(oFile);
try {
doc.write(out);
out.flush();
} finally {
out.close();
}
Code : Tout sélectionner
Source:
Section : 1
paragraphe : 2
longueur : 6
Destination:
Section : 1
paragraphe : 1
longueur : 6
2) A la suite de l'utilisation de la méthode "replaceText(String, String)", si elle remplace un mot, le fichier Word généré est corrompu, on ne peut pas l’ouvrir avec Word 2007 mais avec java on peut récupérer le fichier.
Code : Tout sélectionner
File iFile = new File("D:/empty.doc");
File oFile = new File("D:/doc.doc");
oFile.createNewFile();
InputStream fis = new FileInputStream(iFile);
POIFSFileSystem fs = null;
HWPFDocument doc = null;
try {
fs = new POIFSFileSystem(fis);
} finally {
fis.close();
}
doc = new HWPFDocument(fs);
Range r = doc.getRange();
System.out.println(r.text());
[b]r.replaceText("<NOM>", "Moi");[/b]
System.out.println(r.text());
OutputStream out = new FileOutputStream(oFile);
try {
doc.write(out);
out.flush();
} finally {
out.close();
}
Les "println" me donne ceci:
Code : Tout sélectionner
run:
range: Convocation de <NOM> pour la session de formation
range: Convocation de Moi pour la session de formation
BUILD SUCCESSFUL (total time: 1 second)
Si vous avez déjà eu ce problème ou si vous connaissez une solution, je suis preneur.
Merci d'avance.