Saturday 12 August 2006
BIRT : Génération de Rapport
Par Vincent DEMAY, Saturday 12 August 2006 :: Java
Présentation
BIRT est un projet open source de la fondation Eclipse permettant de réaliser des rapports (ou éditions) sous deux canaux : HTML et PDF. Pour se faire BIRT utilise deux fichiers :- Un fihier de données (XML quelconque)
- Un Etat (ou template représentant la forme du rapport) au format rptdesign (propriétaire BIRT)
Installation du plugin
le plugin BIRT necessite GEF et EMF (autres plugins Eclipse). je conseille donc d'installer la version All-in-one disponible ici. Sinon la procedure d'installation est décrite ici.Une fois BIRT installé il est possible de réaliser des etats et de les éditer en HTML, mais pour pouvoir les éditer en PDF il faut suivre les instructions suivantes:
- Télécharger le fichier : iText1.3 (pour la génération de pdf)
- Le copier à l'emplacement : plugins/org.eclipse.birt.report.engine.emitter.pdf_version/lib/ (plugins étant le répertoire de plugins d'Eclipse).
- Redemarrer Eclipse avec un -clean
Et voila le plugin installé.
Installation du Runtime
BIRT fournit aussi une API Java, pour cela il fautTélécharger le module runtime de BIRT
- Le dezipper sur le disque dur
- Puis ajouter iTexte1.3 dans le repertoire ${BIRT_HOME}birt-runtime-2_1_0/ReportEngine/plugins/com.lowagie.itext/lib toujours pour la génération PDF.
- La doc pour deployer BIRT est diponible ici
| ////////////////////////////////// // Configuration du moteur BIRT // ////////////////////////////////// String reportEngine = <HomeDuMoteur>; EngineConfig config = new EngineConfig( ); //Home du moteur config.setEngineHome(reportEngine); log("[Configuration du moteur BIRT]............OK"); ////////////////////////////// // Moteur de reporting BIRT // ////////////////////////////// ReportEngine engine = new ReportEngine( config ); /////////////////////////////////// // Représentation de l'Etat BIRT // /////////////////////////////////// String etat = <Path de l'Etat>; IReportRunnable design=null; try { design = engine.openReportDesign(etat); } catch (EngineException e1) { log("[Lecture de l'état BIRT]........FAILED" + e1.getMessage()); } log("[Lecture de l'état BIRT]................OK"); ////////////////////////////////////////////// // Tache de creation traitement et de Rendu // ////////////////////////////////////////////// IRunAndRenderTask task = engine.createRunAndRenderTask(design); // Context de rendu HTMLRenderContext renderContext = new HTMLRenderContext(); // S'il y a des images renderContext.setImageDirectory("image"); HashMap contextMap = new HashMap(); contextMap.put(EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT,renderContext ); task.setAppContext( contextMap ); log("[Configuration du moteur de rendu]......OK"); ///////////////////// // Option de rendu // ///////////////////// String out = <Path de sortie du fichier PDF> HTMLRenderOption options = new HTMLRenderOption(); //options.setOutputStream(System.out); options.setOutputFileName(out); options.setOutputFormat("pdf"); task.setRenderOption(options); log("[Configuration du fichier de sortie]....OK"); log("[Début de l'execution de la transfo.]...OK"); try { task.run(); } catch (EngineException e) { log("### Génération du pdf echouée ###\n" + e.getMessage()); } log("### Génération du pdf effectué###"); engine.shutdown(); log("[Arret du moteur BIRT]............OK"); |
Pour plus d'information voici un article très interressant sur les méthodes de deployement de BIRT http://www.onjava.com/pub/a/onjava/2006/07/26/deploying-birt.html
Power by