Ich hatte im letzten Quartal das Vergnügen, aus einer AIR-Applikation heraus PDF Dateien erstellen zu müssen.
Hierbei habe ich mich mit zwei verschiedenen Frameworks näher beschäftigt.
Diese sind:
- AlivePDF (http://alivepdf.bytearray.org/)
- PurePDF (http://code.google.com/p/purepdf/)
Nachdem ich mich mit beiden intensiver auseinander gesetzt hatte, habe ich mich für PurePDF entschieden. Die Gründe hierfür waren:
- PurePDF ist eine 1:1 Portierung der in der Java Welt bekannten IText Library
Da ich in früheren Java-Projekten bereits mit IText zu tun hatte, fiel mir die Einarbeitung leichter.
Weiterhin gibt es bei Manning Publications ein super Buch zu IText, welches man prima als Referenz, auch für PurePDF verwenden kann:
(http://www.amazon.de/iText-Action-Bruno-Lowagie/dp/1935182617/ref=sr_1_1?ie=UTF8&qid=1298827952&sr=8-1).
In IText steckt schon jahrelange Erfahrung & viele Patterns sind bereits erprobt. - PurePDF bietet eine bessere Tabellen-, Schrift- und Sprachenunterstützung, dies fällt insbesondere bei der Verwendung von Asiatischen Sprachen und den damit verbundenen Fonts ins Gewicht.
- Die Dokumentation von AlivePDF ist eher spärlich, man muss sich oft durch die API quälen und findet sehr wenige Beispiele. Bei PurePDF ist dies zwar nicht besser, aber hier kann man auf die Vielzahl an IText Dokumentationen und Tutorials im Netz zurückgreifen.
- Die Performance von PurePDF erscheint mir besser, weiterhin konnte ich auch bei extrem grossen PDF-Files (>80 Seiten) kein Einbruch des Systems / der AIR Applikation verzeichnen
Nachteile,welche mir während der Entwicklung mit PurePDF aufgefallen sind:
- Es gibt Codestellen aus IText, die noch nicht portiert worden sind. Im Regelfall finden diese aber keine Anwendung.
- Bei der Erzeugung von PNG-Files aus UI Komponenten, welche dann im PDF verwendet werden sollen, gibt es Probleme. Auf diese möchte ich in einem separatem Post eingehen.
- Eine Klasse der PurePDf Library wurde mit Alchemy (http://labs.adobe.com/technologies/alchemy/) erzeugt. Dies führt im Flex Compiler zu Problemen, wenn die Option “link-report” gesetzt ist. Ich weiss nicht, ob dieses Problem bei Adobe bekannt ist.
Ansonsten hat mich das Framework schwer begeistert, vor allem die Geschwindigkeit, mit der ich zu guten Ergebnissen kam.