|
Nach über zwei
Jahren Entwicklungszeit, unendlich vielen Tests, und dank
der Geduld und Mithilfe vieler treuer DynaPDF Anwender ist DynaPDF 3.0 nun
endlich verfügbar.
Gut ein Jahr
später als geplant, aber dafür besser als je zuvor, geht
DynaPDF in die dritte Runde. Das neue Hauptfeature ist
natürlich die Rendering Engine. Neben Funktionen zum Rendern
von PDF Seiten und ganzen PDF Dateien, gibt es auch Viewer Beispiele die PDF Seiten
butterweich rendern.
Die
Hauptarbeit wird vom PDFCanvas Control erledigt. Dieses
Control wird mit Quellcodes für C# und Delphi ausgeliefert
und kann derzeit mit C#, Delphi, und Visual Basic .Net
verwendet werden (eine Visual Basic 6 Version folgt in ein
paar Wochen).
Das PDFCanvas
Control kapselt den Seitencache von DynaPDF und kann wie
jede andere Komponente einfach auf einem Formular platziert
werden. Das Control kümmert sich um die komplizierten Dinge,
wie Scrollen, Neuzeichnen, typische Tastaturcodes wie Up,
Down, Home, End usw., MouseWheel Ereignisse, sowie um das
Fehlerhandling. Vor allem letzteres muss bei einer
Multi-Threaded Anwendung sorgfältig implementiert
werden, da es sonst unweigerlich zu Kollisionen kommen
würde.
Für C/C++
Entwickler gibt es mangels verfügbarer Formular Designer
keine Komponente die einfach auf einem Formular platziert
werden
könnte. Das ist bei diesen Programmiersprachen allerdings
auch nicht notwendig, da hier in der Regel direkt mit dem Messageloop
gearbeitet wird.
Das zweite
Hauptfeature in DynaPDF 3.0 ist der neue PDF Import. Der
neue Algorithmus repariert beschädigte Dateien, kann PDF
Dateien beliebiger Größe importieren, und es gibt neue
Funktionen und Flags zur drastischen Reduzierung des
Speicherverbrauchs.
Vor allem die
Reduzierung des Speicherverbrauchs war einer der wichtigsten
Anforderungen. Und es
gibt noch eine gute Nachricht: Wenn Sie den
Speicherverbrauch Ihrer mit DynaPDF 2.5 kompilierten Anwendung drastisch
reduzieren möchten, dann brauchen Sie nur das neue Flag
if2UseProxy mit SetImportFlags2() zu setzen, fertig!
Dieses kleine
Flag hat enorme Auswirkungen auf den Speicherverbrauch und mit einer einzigen
Zeile Code ist die Änderung mehr als überschaubar. Einzige
Bedingung ist, dass die Eingabedatei bis zur vollständigen
Erzeugung der neuen Datei nicht gelöscht werden darf, da
DynaPDF benötigte Teile erst lädt wenn die neue Datei
geschlossen wird.
Aber auch
ohne jede Änderung geht bereits wesentlich mehr als vorher.
Alle Klassen und Strukturen wurden auf minimalen
Speicherbedarf optimiert und DynaPDF hält grundsätzlich
keine unkomprimierten Daten mehr im Speicher.
Für die ganz
harten Fälle
gibt es nun auch noch die Möglichkeit mit FlushPages() nicht
mehr benötigte Seiten in die Ausgabedatei zu schreiben. So können problemlos PDF Dateien bis zu 4 GB Größe erzeugt
werden, selbst wenn auf dem
System nicht mehr als 128 oder 256 MB Speicher installiert
sind.
Der neue
Import Algorithmus ist übrigens vollständig PDF 1.7,
Extension Level 5 kompatibel. Es werden aber auch künftige
Features unterstützt, die es jetzt noch gar nicht gibt.
Solange die PDF Syntax nicht geändert wird, können Sie mit
DynaPDF 3.0 auch künftige PDF Versionen importieren, ohne
Datenverlust. Daten
die DynaPDF nicht versteht werden einfach so importiert wie
sie sind, das gilt natürlich auch für private Daten, die von
Drittherstellern erzeugt wurden.
Neben den
Hauptfeatures, die den Großteil der Entwicklungszeit für
sich beansprucht haben, gibt es natürlich auch kleinere
Neuigkeiten, wie bspw. Unterstützung von Bildern mit Alpha Kanal, Softmasken, Transparenzgruppen, sowie unzählige
Verbesserungen im Detail.
Bspw.
unterstützt DynaPDF jetzt auch Full Names für die
Schriftsuche. Das erscheint
nebensächlich, macht aber bei der Verarbeitung von EMF
Druckspools nicht selten den entscheidenden Unterschied
zwischen einer korrekten und fehlerhaften Schriftauswahl
aus. Windows verwendet eben Full Names, Postscript Namen
werden hingegen von Windows nicht unterstützt.
Natürlich ist die neue Version, mit Ausnahme von
zwei eher selten benutzten Funktionen, zu 100%
abwärtskompatibel. Es wurden keine Funktionen
entfernt oder inkompatibel geändert. Auch die Funktionen,
die bereits seit geraumer Zeit als Obsolete markiert waren,
bleiben in der Bibliothek. Der Umstieg soll für Sie so
einfach wie möglich sein.
Genauere
Informationen über erweiterte Strukturen, Enums, neue
Funktionen usw. finden Sie im Downloadbereich in der Datei
Implementation_Notes.pdf.
Linux, Unix
und Mac OS X Versionen können ab sofort auch ohne Enterprise
Lizenz verwendet werden. Da diese Versionen jedoch nicht mit
Quellcodes ausgeliefert werden, können Sie nur die
vorkompilierten Binaries verwenden. Bei der Shared Library
Version ist das in der Regel kein Problem, bei der Static
Library kann es jedoch zu Linkerfehlern kommen, bspw. wenn
Sie eine andere GCC Version verwenden, als die mit der
DynaPDF kompiliert wurde.
Static
Libraries die mit unterschiedlichen GCC Versionen kompiliert
werden, sind leider nicht immer binärkompatibel und
verursachen dann Linkerfehler. In einem solchen Fall kann
entweder
die gleiche GCC Version installiert werden, oder Sie
wechseln auf die Shared Library. Wer lieber auf
Nummer sicher gehen möchte, sollte nach wie vor DynaPDF
Enterprise lizenzieren. Dann entfallen sämtliche
Inkompatibilitäten, da Sie DynaPDF auf Ihrem System selbst
kompilieren können.
|