[XdocReport] API Java de reporting pour ODT, DOCX avec Freemarker/Velocity + conversion PDF, XHTML
Bonjour a tous,
Je me permets de poster sur ce forum pour vous parler de XDocReport qui est en cours de développement.
XDocReport est une API Java qui permet de creer ses rapport avec OpenOffice (ODT) ou MS Word (DOCX) et d'utiliser une syntaxe Freemarker ou Velocity pour indiquer les champs a modifier par des donnes métiers (Objet java), comme ce que j'avais fait avec RTFTemplate (qui ne gère que du RTF).
Par defaut XDocReport prend un modèle source et génère un rapport de même type (ODT -> ODT, DOCX -DOCX), mais il y a aussi possibilité de convertir le report pendant le processus de generation vers un autre format (PDF, XHTML).
Comapré à des API puissantes comme Birt Ou JasperReports, l'interet de XDocReport est de pouvoir créer ses rapport avec OpenOffice ou MS Word, il n'y a pas besoin d'avoir un designer spécifique. Le designer est OpenOffice ou MS Word. XDocReport peut être intéressant pour par exemple gérer des lettre de relances dans une application qui peuvent être modifié par uen secretaire (du moins la partie statique du document et pas les champs car ca utilise une syntaxe technique Freemarker ou Velocity).
Si vous êtes intéressé par XDocReport, vous avez une démo en ligne sur http://xdocreport.opensagres.cloudbees.net/
Avec cette application vous pouvez tester la generation de report sur http://xdocreport.opensagres.cloudbe...cessReport.jsp ainsi que la conversion vers un autre format.
Il est aussi possible d'uploader votre propre document odt, docx http://xdocreport.opensagres.cloudbe...loadReport.jsp et effectuez des tests. L'application WEB ne supporte pas pour l'instant la saisie de donnees en tableau mais XDocReport permet de gérer cette problématique.
La conversion vers un autre format utilise divers techniques (XSL-FO -> FOP, ODFDOM -> IText, XWPF -> IText...) et c'est en cours de developpement (soyez indulgent s'il vous plait).
XDocReport est très modulaire dans le sens ou il est possible d'implémenter son propre moteur de template (autre que Velocity ou Freemarker pour gérer uen autre syntaxe) et d'implementer d'autre type de document (ex : ODS pour Excel).
XDocReport est designe avec OSGi (notion de bundle+fragment, mais ca marche sans OSGi bien sur) et donne un support WEB (fournit des servlets à implémenter) ou l'application de démo est un cas d'implémentation.
La doc est encore assez pauvre mais vous pouvez déjà lire des choses sur http://code.google.com/p/xdocreport/wiki/Overview?tm=6
Il n'a pas encore de release, mais elle est prévue en Juin. N'hésitez pas a nous faire part de vos remarques, souhait si jamais XDocReport vous intéresse.
Merci de votre attention.
Angelo
[Annonce] Release de XDocReport 0.9.0
Bonjour a tous,
J'ai le plaisir de vous annoncer que la release 0.9.0 de XDocReport est maintenant disponible.
Pour plus d'informations voir le Wiki XDocReport.
Bonne journée
Angelo
[Annonce] Release de XDocReport 0.9.1
Bonjour a tous,
J'ai le plaisir de vous annoncer que la release 0.9.1 de XDocReport est maintenant disponible.
Cette release permet entre autres de gerer
Bonne soirée
Angelo
[Annonce] Release de XDocReport 0.9.2
Bonjour a tous,
Cela fait un mois qu'elle est sortie mais j'ai le plaisir de vous annoncer que la release 0.9.2 de XDocReport est maintenant disponible.
Cette release permet entre autres de gérer des tables complexes (ex:gestion de la couleur de fond d'une ligne paire/impaire) pour docx et odt.
Il y a aussi une démo WEB avec Eclipse RAP de gestion de CV en ligne qui sera une application de gestion de CV basé sur XDocReport pour générer les CV (tout ceci vous pouvez déjà le tester).
La version 0.9.3 est en cours de développement et une fonctionnalité intéressante est le text styling qui permet de styler son texte : au lieu de remplacer un champs avec du texte brute il sera possible de remplacer un champs avec un texte stylés (gras, italic, etc). Il y a une démo de Text styling avec XDocReport qui commence à marcher (bug encore avec les liens+liste a puces/numéro).
Bonne journée
Angelo
Annonce] Release de XDocReport 0.9.4
Bonjour a tous,
J'ai le plaisir de vous annoncer que la release 0.9.4 de XDocReport est maintenant disponible.
Cette release permet entre autres de gerer
* de donner la possibilité de générer un PPTX Power Point à partir d'un autre PPTX avec des noms de champs à remplacer.
* d'améliorer la conversion ODT->PDF.
* corriger plusieurs bugs.
La version 0.9.5 sera axé "outils", autrement dit une macro word sera disponible pour afficher dans uen fenêtre de dialogue les noms des champs que l'on peut insérer dans un docx+faire de la prévisualisation.
Bonne soirée
Angelo
[ANNOUCE] Release de XDocReport 0.9.7
Bonsoir,
J'ai le plaisir de vous annoncer que la release 0.9.7 de XDocReport est maintenant disponible.
Cette release corrige plusieurs bugs et améliore la gestion des images (gestion des images null+possibilité d'utiliser un InputStream, byte[], etc pour les images au lieu de IImageProvider.
Angelo
[Annonce] Release de XDocReport 0.9.8
Bonjour a tous,
J'ai le plaisir de vous annoncer que la release 0.9.8 de XDocReport est maintenant disponible.
Cette version fournit un service JAX-RS/JAX-WS de gestion de resources (odt, docx, etc...). Pous vous pouvez ainsi mettre repository de template sur le cloud via ce service et consommer ce serviec pour afficher la hierachie de templates, download/upload d'un template.
La macro OpenOffice fournit un client et vous pouvez depuis OpenOffice afficher la liste des templates d'un repository sur le cloud, telecharger un template, le modifier avec OpenOffice et ensuite le sauvegarder dans le repository du cloud(voir http://code.google.com/p/xdocreport/...STSOAPServices).
Il y a eu des améliorations sur le text styling HTML + la converstion ODT->PDF.
Bonne journée
Angelo
docx to pdf ne marche pas
Bonjour Angelo,
J'ai essayé ton API pour transformer des documents .DOCX en .PDF comme indiqué sur le package docxandvelocity.converters-1.0.4 mais j'ai des exceptions ... j'ai essayé toutes formes de l'objet ConverterTypeVia.XXXX et à chaque fois j'ai un problem de converter.
en essayant le même package avec les exemples dedans : j'ai eu ces exeptions :
fr.opensagres.xdocreport.converter.XDocConverterException: java.lang.IllegalAccessError: org.apache.poi.xwpf.converter.pdf.internal.PdfMapper.createMasterPage(Lorg/openxmlformats/schemas/wordprocessingml/x2006/main/CTSectPr;)Lorg/apache/poi/xwpf/converter/core/IXWPFMasterPage;
at fr.opensagres.xdocreport.document.AbstractXDocReport.convert(AbstractXDocReport.java:748)
at DocxProjectWithVelocity2PDF.main(DocxProjectWithVelocity2PDF.java:208)
Caused by: java.lang.IllegalAccessError: org.apache.poi.xwpf.converter.pdf.internal.PdfMapper.createMasterPage(Lorg/openxmlformats/schemas/wordprocessingml/x2006/main/CTSectPr;)Lorg/apache/poi/xwpf/converter/core/IXWPFMasterPage;
at org.apache.poi.xwpf.converter.core.MasterPageManager.addSection(MasterPageManager.java:179)
at org.apache.poi.xwpf.converter.core.MasterPageManager.compute(MasterPageManager.java:127)
at org.apache.poi.xwpf.converter.core.MasterPageManager.initialize(MasterPageManager.java:90)
at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.visitBodyElements(XWPFDocumentVisitor.java:227)
at org.apache.poi.xwpf.converter.core.XWPFDocumentVisitor.start(XWPFDocumentVisitor.java:194)
at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:55)
at org.apache.poi.xwpf.converter.pdf.PdfConverter.doConvert(PdfConverter.java:37)
at org.apache.poi.xwpf.converter.core.AbstractXWPFConverter.convert(AbstractXWPFConverter.java:45)
at fr.opensagres.xdocreport.converter.docx.poi.itext.XWPF2PDFViaITextConverter.convert(XWPF2PDFViaITextConverter.java:67)
at fr.opensagres.xdocreport.document.AbstractXDocReport.convert(AbstractXDocReport.java:713)
... 1 more
aurai-tu des idées par rapport à ça.
Merci par avance.
Adil
Plusieurs fois le document source
Bonjour. Merci pour ta réponse. Vu que j'utilise à fond ton API actuellement, je me suis retrouvé confronté à une situation. Je ne sais comment générer plusieurs copies du document source.
Je m'explique:
J'ai mon template qui tient sur une page avec les informations concernant un individu. Maintenant je souhaite générer un seul document contenant plusieurs pages à partir d'une collection d'individus.