Dans cet article, je vais vous parler d'une alternative à POI. En effet, afin de manipuler les fichiers "office", la bibliothèque la plus connue est POI. Cette bibliothèque est très appréciée pour la gestion des fichiers Excel par exemple. Par contre, pour la gestion des documents Word c'est une autre paire de manches. Tant que le fichier ne comporte pas d'objets spéciaux, la gestion est aisée. Par contre, pour l'édition de formulaires avec remplacement d'étiquettes par des valeurs extraites d'une base de données par exemple, la tâche est bien plus compliquée.
En fouillant un peu sur le Web, j'ai trouvé cette petite libraire très pratique : https://github.com/opensagres/xdocreport
Pour l'intégrer dans votre projet maven, rien de plus facile :
Les étiquettes dans vos documents doivent être préfixées par le symbole $ exemple : $test
Ci-dessous, un bout de code permettant de remplacer l'étiquette $test par Hello Word.
InputStream in = new FileInputStream(filenameIn);
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(
in, TemplateEngineKind.Velocity);
IContext context = report.createContext();
context.put("test", "Hello World");
OutputStream out = new FileOutputStream(folderReplacement+File.separator+r.getId()+".docx");
report.process(context, out);
out.close();
Et voilà, l'étiquette est remplacée dans votre document.
Bonjour,
Il est à noter que ce projet est développé par Angelo Zerr, actuellement employé chez SODIFRANCE, société « sœur » de NETAPSYS.