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)
BIRT
peut être utilisé de deux façons : sous
Eclipse via le plugin permettant de "dessiner" des Etats et
générer le rapport et en runtime, dans du code
java. Cette dernière méthode ne permet pas de
réaliser des etats mais permet de lancer la
génération du rapport.
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 faut
Té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
Et voici un petit exemple permettant de générer
un rapport PDF avec l'API de BIRT :
//////////////////////////////////
//
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