Derzeit arbeite ich u.a. daran ein PDF-Dokument mit Java zu erzeugen. Es ist ein einfacher Brief mit einer Anschrift, Ort, Datum, Betreff und dem Briefinhalt. Ein paar Sachen sollen dynamisch eingefügt werden. Es ist also eine recht einfache Sache. Da im Projekt schon iText im Einsatz ist, habe ich damit angefangen. Mit der Hilfe des Buches IText in Action” von Bruno Lowagie – und insbesondere den Code-Beispielen – hatte ich innerhalb eines Tages die Aufgabe gelöst. Jar-Files in den Classpath und ca. 100 Zeilen Java-Code (kann ihn leider hier aus rechtlichen Gründen nicht zeigen) und die Sache war geschaft. Ich habe mit ColumnText die Texte absolut positioniert.

Nun hat aber ein Kollege gemeint, dass es ja sehr unschön sei, dass die Layoutinformation im Java-Source vergraben sei. Stimmt. Innerhalb des Java-Codes steht nun wo welche Information auf dem Brief stehen soll. Soll das Layout geändert werden, dann muss auch mein Code geändert werden.

Naja, also mal schnell umgeschaut und die zwei Platzhirsche im Bereich Java-Reporting nämlich JasperReports und Birt angeschaut. Wie schon des öfteren geschrieben wird bei uns sehr viel mit Eclipse gemacht und deshalb habe ich als erstes mal Birt angeschaut. Nach einem halben Tag war ich noch nirgends, insbesondere war mir nicht vollständig klar, wie die Laufzeitumgebung auf dem Server aussieht und was ich alles deployen muss. Also habe ich mich an JasperReports gesetzt und siehe da innerhalb von zwei Stunden mit 10 Zeilen Code und einem Report mit IReport erstellt, war das erste PDF gebaut. Einfach die jar-Files von JasperReports mit auf dem Server deployen – fertig. Die mitgelieferten Beispiele in Form von Reports und Java-Source sind ein guter Einstieg.

Inzwischen sind auch die Briefe komplexer geworden und ich war froh nicht mehr alles per Hand mit iText ausprogrammieren zu müssen.  Alles in Allem ist JasperReports eine echte Empfehlung.

 

3 Responses to Ein einfaches PDF mit Java erzeugen (iText vs. JasperReports vs. Birt)

  1. patforna says:

    Hey Oli,

    Ich hatte vor ein paar Jahren mal iText benutzt und war zum gleichen Schluss gekommen wie du (i.e. blöd, dass das Layout programmatisch erzeugt werden muss). Hätte eigentlich gehofft, dass es mittlerweile etwas cleverer geworden wäre. Aber immerhin scheint’s ja gute Alternativen zu geben =)

    Cheers,
    patric

  2. oliver.nautsch says:

    Hoi Patric,

    iText ist absolut okay wenn man low-level etwas mit PDF machen möchte. Ich benutzte jetzt z.B. JasperReports um die einzelnen Briefe zu bauen und nachher iText um daraus ein grosses Dokument zu machen, welches alle Briefe enthält. JasperReports intern benutzt auch iText um PDF’s zu erzeugen.

    Die Kombination aus beiden Tools ist wirklich cool.

    Gruss Oliver
    PS.: Schön Dich auf meinen Blog zu sehen. :)

  3. [...] Heute hatte ich einen Bug. Wie in einem Post geschrieben erstelle ich mit JasperReport ein paar einfache Briefe in PDF. Das Erstellen läuft auf [...]

Leave a Reply