Neuigkeiten, Updates, Bugfixes

In dieser Sektion finden Sie Informationen zu Updates und neuen Features, die in dem jeweils letztem Update hinzugefügt wurden. Bitte beachten Sie, dass nur Änderungen in offiziellen Versionen aufgeführt werden. Unveröffentlichte Testversionen werden hier nicht aufgeführt, die jeweilige Versionsnummer wird jedoch erhöht.

 

Version 2.5.1.533

 

 
 

Bugfix

Beschreibung

 
 

FlattenAnnots()

Unter bestimmten Umständen konnten Anmerkungen falsch skaliert werden.

 
 

FreeTextAnnot()

Die Funktion berücksichtigte nicht die Rahmenstärke.

 
 

OpenImportFile()

Die Funktion konnte in einer Endlosschleife hängen bleiben, wenn ein Name Tree Null Objekte enthielt.

 
 

PDF Import

Die Flags von importierten Feldern wurden per Default auf druckbar gesetzt. Wenn die Flags bei der Importierung nicht überschrieben wurden, änderte sich das Druckverhalten von betroffenen Feldern.

 
 

Text Ausgabe

DynaPDF gab keine Warnungen über nicht gefundene Schriftzeichen aus, wenn die Schrift eine Codepage verwendete und Texte über die Unicode Variante einer Stringfunktion ausgegeben wurden.

 
 

WriteTextMatrix()

Eine gedrehte oder skalierte Matrix wurde unter bestimmten Umständen nicht berücksichtigt, wenn bspw. auf der gleichen Y-Koordinate bereits Text mit einer anderen Matrix ausgegeben wurde.

 
 

Neue Funktionen

Beschreibung

 
 

AddRenderingIntentEx()

Die Funktion akzeptiert einen Dateipuffer als Eingabe.

 
 

GetInIsTrapped()

Gibt den Wert des Trapped Schlüssels zurück.

 
 

RenameSpotColor()

Nennt eine Sonderfarbe in allen Separation, DeviceN und NChannel Farbräumen um, in denen die Farbe gefunden wird.

 
 

SetAnnotBorderStyle()

Ändert den Rahmenstil einer Anmerkung.

 
 

SetAnnotBorderWidth()

Ändert die Rahmenstärke einer Anmerkung.

 
 

SetAnnotColor()

Ändert die Rahmen-, Hintergrund- oder Textfarbe einer Anmerkung.

 
 

SetAnnotFlagsEx()

Ändert die Flags einer Anmerkung.

 
 

SetAnnotHighlightMode()

Ändert den Highlight Mode einer Link Anmerkung.

 
 

SetAnnotIcon()

Ändert das Icon einer Text Anmerkung.

 
 

SetAnnotOpenState()

Ändert den Fensterstatus einer Markup Anmerkung.

 
 

Version 2.5.0.530

 

 
 

Bugfix

Beschreibung

 
 

InsertImage(), InsertImageEx(), InsertImageFromBuffer()

Der Bitmap Decoder berücksichtigte nicht den Datenoffset zu den Pixeldaten des Imageheaders. Dadurch konnten ungültige Daten geladen werden, wenn das Bild zusätzliche Metadaten enthielt.

 
 

DeletePage()

Wenn eine zuvor importierte Seite gelöscht und dann noch einmal importiert wurde, ohne die Importdatei zu schließen, dann trat eine Zugriffsverletzung auf.

 
 

PDF Import

Dateien mit ungültigen Objekten in der Querverweistabelle konnten nicht geöffnet werden. Gemäß Spezifikation müssen solche Objekte ignoriert werden.

 
 

Version 2.5.0.529

 

 
 

Bugfix

Beschreibung

 
 

EMF Konverter

Texte in EMRSMALLTEXTOUT Rekords wurden horizontal nicht skaliert.

 
 

PDF Import

DynaPDF brach die Importierung einer Seite mit einem Fehler ab, wenn im Page Objekt ein Boolean Wert enthalten war.

Die Änderung bezüglich Optional Content Groups in Version 2.5.0.27 konnte unter bestimmten Umständen zu Fehlern führen.

 
 

Version 2.5.0.527

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

Die Reihenfolge von Optional Content Groupgs (OCGs) konnte bei der Importierung geändert werden. Das konnte zu Fehlern führen, wenn auf Layer mit Javascript Funktionen über den Arrayindex zugegriffen wird.

Ungültige Escape Sequenzen in String Objekten wurden übersprungen, während Acrobat nicht erkannte Zeichen übernimmt.

3D Views ohne gültigen XN Schlüssel wurden nicht importiert. Entgegen der Referenz scheint Acrobat den Schlüssel nicht zu benötigen. DynaPDF fügt den Schlüssel nun ggfls. hinzu.

 
 

SetDocInfoEx()

Benutzerdefinierte Schlüssel konnten nicht geändert werden, da ein bereits vorhandener Schlüssel aufgrund eines Fehlers im Suchalgorithmus nicht gefunden wurde. Dadurch wurde der gleiche Schlüssel noch einmal mit dem neuen Wert hinzugefügt. Lediglich das Löschen von Benutzerdefinierten Schlüsseln war möglich.

 
 

Verschlüsselung

Wenn bei AES oder Acrobat 7 kompatiblen 128 Bit RC4 verschlüsselten Dokumenten der Standardfilter für Eingebettete Dateien im Encryption Dictionary gesetzt wird, gewähren die Vollversionen von Acrobat 7, 8 und 9 Vollzugriff auf das Dokument! Das Eigentümer Passwort wird zum Ändern der Sicherheitseinstellungen nicht mehr abgefragt. Da DynaPDF den Standfilter für eingebettete Dateien gesetzt hatte, blieben die Sicherheitseinstellungen wirkungslos.

Durch diesen Fehler können die Sicherheitseinschränkungen auch von existierenden Dateien problemlos umgangen werden. Durch einfaches Überschreiben der Sequenz /Length 128 bzw. /Length 256 mit "/EFF/StdCF   " im Encryption Dictionary, erhält man Vollzugriff auf das Dokument obwohl es eigentlich mit Benutzerrechten geöffnet werden sollte.

 
 

Version 2.5.0.525

 

 
 

Bugfix

Beschreibung

 
 

GetLastTextPosX(),

GetLastTextPosY()

Die Funktionen gaben absolute Koordinaten zurück, die ohne Umrechnung nicht nutzbar sind.

 
 

InsertImage(), InsertImageEx()

In JPEG Bildern eingebettete ICC Profile wurde nicht berücksichtigt, wenn das Bild im Pass-Through Modus eingefügt wurde, auch wenn das Flag gfUseImageColorSpace gesetzt war (siehe SetGStateFlags()). Die Funktion löste eine Out of Memory Exception aus, wenn das Flag gfUseImageColorSpace gesetzt und SetSaveNewImageFormat() auf false gesetzt war und das Bild ein ICC Profil enthielt.

 
 

PDF Import

Die Importierung schlug fehl, wenn die Media Box einer Seite indirekte Referenzen enthielt.

 
 

WriteAngleText()

Die Funktion setze nicht den Endpunkt des Textes.

 
 

WriteFText()

Das Listensymbol wurde in Listen nicht ausgegeben. Der \TR[] (Text Rise) Operator wurde nicht korrekt verarbeitet.

 
 

Version 2.5.0.522

 

 
 

Bugfix

Beschreibung

 
 

EMF Konverter

Wenn PolyLine() Rekords nur aus einer Linie bestanden und wenn der Start und Endpunkt identisch war, wurde nichts ausgegeben.

 
 

Fonthandling

CloseFile() gab einen "Unknown Error" zurück, wenn im Dokument Schriften mit der Codepage cpUnicode verwendet wurden.

 
 

GetFont()

Die Funktion gab bei Standardschriften skalierte Metriken zurück.

 
 

ParseContent()

Wenn ein Content Stream einen ungültigen Operator enthielt, konnte die Funktion in einer Endlosschleife hängen bleiben.

 
 

PDF Import

Nicht eingebettete Schriften wurden nicht vollständig geladen, wenn die gleiche Schrift bereits im Dokument verwendet wurde. In der neuen PDF Datei konnten dadurch Zeichen fehlen oder überlappen.

Unter bestimmten Umständen konnten auch Namenskonflikte entstehen, wenn eine nicht eingebettete Schrift in einer PDF Datei mit unterschiedlichen Linknamen verwendet wurde. Dieser Fehler konnte nur unter sehr speziellen Bedingungen auftreten. Die resultierende PDF Datei konnte dann allerdings unbrauchbar sein.

 
 

Version 2.5.0.519

 

 
 

Bugfix

Beschreibung

 
 

Fonthandling

Die Stilattribute von nicht eingebetteten Schriften wurden nicht korrekt berücksichtigt, wenn die Schrift in die PDF Datei geschrieben wurde. Aufgrund der fehlenden Stilattribute konnte die falsche Variante einer Schrift geladen werden.

Der Descender von TrueType und OpenType Schriften wurde falsch berechnet, wenn die Schrift keine OS2 Tabelle enthielt. Der Wert war zu groß in diesem Fall.

Der Demo String konnte unvollständig angezeigt werden, wenn die Schrift Helvetica Bold im Dokument verwendet und eingebettet wurde.

 
 

PDF Import

Die Bounding Boxen von PDF Seiten wurden nicht unabhängig voneinander von dem dazugehörigen Pages Objekt abgeleitet. Im ungünstigsten Fall konnte dadurch die Media Box nicht gefunden werden und es war nicht möglich betroffene Seiten zu importieren.

 
 

PlaceTemplateEx()

Die Funktion verwendete einen falschen Koordinatenursprung für 90 und -270 Grad gedrehte Seiten.

 
 

Version 2.5.0.517

 

 
 

Bugfix

Beschreibung

 
 

-

Offizielle Freigabe von DynaPDF 2.5.

 

Download Info für bestehende Kunden:

Bitte ändern Sie die URL Ihres Download Accounts am Ende jeweils auf:

.../dynapdf_2.5.zip     // DynaPDF Enterprise

.../dynapdf_2.5_std.zip // DynaPDF Lite, Professional

Benutzername, Passwort, sowie der Lizenzschlüssel haben sich nicht geändert.

 
 

Version 2.0.49.486

 

 
 

Bugfix

Beschreibung

 
 

CheckFieldNames()

Die Funktion ignorierte keine als gelöscht markierten Felder.

 
 

Content Parser

Der Parser konnte in einer Endlosschleife hängen bleiben, wenn eine Schrift negative Zeichenbreiten enthielt.

 
 

CreateCheckBox()

Wenn mehrere Checkboxen mit identischen Namen und unterschiedlichen Exportwerten erzeugt wurden, konnte der Status von einzelnen Checkboxen auf falsch gesetzt werden obwohl er true sein sollte.

 
 

Delphi Interface

Das Delphi Interface war nicht kompatibel mit Delphi 2009 oder höher, da in diesen Versionen der Datentyp String auf WideString geändert wurde.

 
 

EMF Konvertierung

AngleArc Rekords wurden nicht korrekt ausgegeben. Die Mapping Modes MM_LOENGLISH und MM_HIENGLISH wurden nicht korrekt umgesetzt.

 
 

FlattenForm()

Feldgruppen bestehend aus Checkboxen wurden unter bestimmten Umständen nicht auf die Seite gezeichnet.

 
 

fntGetSpaceWidth()

Die Standard Leerzeichenbreite wurde bei Composite Fonts anders berechnet als bei einfachen Schriften.

 
 

FileAttach Annotations

Das Icon von FileAttach Anmerkungen wurde unter bestimmten Umständen nicht korrekt importiert.

 
 

Fontloader

Der Fontloader konnte unter Mac OS X Schriften nur von einem Resourcefork laden, da alle nachfolgenden Resourceforks aufgrund einer falschen Duplikatprüfung ignoriert wurden.

 
 

HighlightAnnot()

Unter bestimmten Umständen wurden Highlight Anmerkungen falsch gezeichnet, bspw. auf gedrehten Seiten.

 
 

PDF Import

Ein eventuell vorhandenes Encoding von TrueType Schriften von Formularen wurde nicht geladen, daher konnten Zeichen fehlen, wenn diese Schrift auch für normale Seitenobjekte verwendet wurde.

Beschädigte PDF Dateien mit einer komprimierten Objektstruktur einen Bufferoverrun verursachen, wenn ein Objektstream weniger Daten als angegeben enthielt.

Die optionale Transformationsmatrix von Patterns wurde mit zu geringer Präzision in die Datei geschrieben. Dadurch konnten sichtbare Änderungen auftreten.

Formularfelder, die ein Borderstyle Dictionary als indirektes Objekt enthielten, wurden nicht korrekt importiert.

Radiobuttons, die mit Adobes Designer erzeugt wurden enthalten häufig ein Opt Array mit inkonsistenten Werten. Dadurch kann eine Checkbox in diesem Radiobutton nicht mehr aktiviert werden. DynaPDF repariert solche Radiobuttons nun automatisch.

Article Beads wurden nicht importiert.

 
 

PlaceSigFieldValidateIcon()

Die Gültigkeitsprüfung für das Zielrechteck war bei gedrehten Seiten falsch. Daher konnte das Icon bei gedrehten Seiten nicht frei plaziert werden.

 
 

SetCheckBoxState()

Die Funktion ändert den Status einer Checkbox nur noch, wenn der neue Status nicht dem bereits vorhanden Status entspricht. Dadurch bleibt der Status in allen Checkboxen eines Radio Buttons gültig, auch wenn er für jede Checkbox separat gesetzt wird.

 
 

Signatur Felder

Auf gedrehten Seiten wurden Signaturfelder falsch gezeichnet.

 
 

TrueType Schriften

Unter bestimmten Umständen wurde das Leerzeichen in der Schrift auf .notdef gemappt. Das Mapping war zwar falsch, führte jedoch dennoch zu einem korrekten Ergebnis.

 
 

VB .Net und C# Interfaces

Strukturen, die den Datentyp IntPtr enthielten, wurden auf 64 Bit Plattformen nicht korrekt gemarshalt.

 
 

Neue Funktionen

Beschreibung

 
 

DeleteAcroForm()

Löscht ein bereits im Speicher befindliches PDF und XFA Formular.

 
 

DeleteJavaScripts()

Löscht globale Javascripte und Javascript Actions.

 
 

DeleteXFAForm()

Löscht ein eventuell vorhandenes XFA Formular. Hybrid Formulare können danach wieder bearbeitet werden.

 
 

Set3DAnnotProps()

Mit der Funktion kann das Aktivierungs- und Deaktivierungsverhalten von 3D Anmerkungen eingestellt werden.

 
 

Set3DAnnotScript()

Speichert ein Javascript in der 3D Anmerkung. Im Gegensatz zu normalen Javascripten können Scripte in 3D Anmerkungen direkt auf den 3D Context zugreifen, bspw. zur Steuerung einer Animation oder zum Einstellen von unzähligen Eigenschaften des 3D Contextes.

 
 

SetAnnotString()

Setzt oder löscht verschiedene Strings von einer Anmerkung.

 
 

TPDFAnnotationEx

Die Struktur wurde um einige zusätzliche Felder erweitert.

 
 

Version 2.0.46.460

 

 
 

Bugfix

Beschreibung

 
 

CloseFileEx()

Auf Big-Endian Maschinen wurde die PDF Datei ungültig verschlüsselt, sofern RC4 Verschlüsselung verwendet wurde. Texte von Comboboxen wurden unter Bestimmten Umständen nicht verschlüsselt. Der Inhalt von betroffenen Feldern war dadurch unbrauchbar.

 
 

Content Parser

Bei der Dekomprimierung von CCITT Fax komprimierten Bildern konnten Fehler auftreten, da der in DynaPDF integrierte CCITT Fax Dekoder EOL Marker in manchen Fällen nicht korrekt verarbeitet hat.

 
 

EditTemplate2()

Die Funktion konnte nicht außerhalb einer geöffneten Seite verwendet werden.

 
 

EMF Import

Das Intercharacter Spacing Array wurde ignoriert, wenn ein Text nur ein Leerzeichen enthielt. Dadurch konnten bspw. Unterstreichungen falsch ausgegeben werden, wenn bspw. eine ganze Textzeile mit einem einzelnen breit gestrecktem Leerzeichen unterstrichen wird.

 
 

Interaktive Formulare

Texte von Feldern, die eine Hintergrundfarbe verwenden wurden in Acrobat 9 nicht dargestellt, wenn die Option "Felder Markieren" aktiviert war.

Importierte Radio Buttons konnten falsch dargestellt werden, wenn das zu verwendete Check Box Zeichen nicht in der PDF Datei gespeichert war.

 
 

PDF Import

Verschlüsselte Dateien, die eine File ID mit einer Länge mit einer anderen Länge als 16 Bytes enthielten konnten nicht entschlüsselt werden.

DynaPDF enthält nun einige neue Reparaturfunktionen für beschädigte PDF Dateien.

 
 

SetFont()

Die Codepage wurde nicht geändert, wenn eine Schrift mit unterschiedlich CJK Zeichensätzen verwendet wurde. Dadurch konnten Zeichen in der Ausgabe fehlen.

 
 

SetUseSwapFileEx()

Die Funktion konnte aufgrund eines Zugriffs auf einen nicht null-terminieten String einen Bufferoverrun verursachen.

 
 

Neue Funktionen

Beschreibung

 
 

LoadFDFData()

Die Funktion lädt Formulardaten von einer FDF Datei. Das Formular muß vor Aufruf der Funktion importiert werden.

 
 

LoadFDFDataEx()

Wie LoadFDFDate(), die Funktion akzeptiert jedoch einen Dateipuffer als Eingabe.

 
 

Version 2.0.45.452

 

 
 

Bugfix

Beschreibung

 
 

Content Parser

In Version 2.0.45.447 konnte eine Zugriffsverletzung auftreten, wenn das zu parsende Dokument CID Fonts enthielt.

 
 

Fontloader

Unter Windows werden Systemschriften per Default aus der Registry geladen. Windows speichert allerdings nicht alle verfügbaren Schriften in der Registry, daher musste der Fontloader erweitert werden. In den meisten Fällen wurde bspw. die Schrift Marlett nicht gefunden, es konnten in seltenen Fällen aber auch Standardschriften wie bspw. Arial fehlen.

 
 

InsertImageFromBuffer()

Aufgrund einer Änderung im TIFF Dekoder konnten keine TIFF Bilder mehr von einem Puffer geladen werden.

 
 

PDF Import

DynaPDF brach die Importierung mit einer Fehlermeldung ab, wenn der optionale Schlüssel FontFamily einen leeren String enthielt.

Bounding Boxen von Templates mit einer Größe von [-32268, 32767, -32268, 32767] wurden bei der Importierung fälschlicher Weise geändert. Dadurch konnten die betroffenen Templates in seltenen Fällen nicht mehr angezeigt werden (solche Bounding Boxen treten äußerst selten auf).

 
 

Version 2.0.45.447

 

 
 

Bugfix

Beschreibung

 
 

Content Parser

PDF Dateien, die sehr viele CCITT Fax komprimierte Inline Images enthielten wurden extrem langsam verarbeitet. Der Content Parser wird von den Funktionen ComputeBBox(), IsColorPage(), GetPageText() , ParseContent() usw. verwendet.

 
 

PDF Import

In der Version 2.0.45.446 wurden bei der Importierung von PDF Dateien Prüfungen durchgeführt, die normaler Weise nur bei der Konvertierung von PDF nach PDF/A angewendet werden. Dadurch konnten Fehler auftreten, wenn bspw. eine Schrift inkonsistente Zeichenbreiten enthielt.

 
 

Version 2.0.45.446

 

 
 

Bugfix

Beschreibung

 
 

ComputeBBox()

Die optionale Matrix von Templates wurde beim Parsen des Dokuments ignoriert, daher konnte die Berechnung falsch sein.

 
 

EMF Konverter

Leere Clipping Regionen wurden nicht richtig umgesetzt. Benutzerdefinierte Farbpaletten wurden nicht auf Bilder angewendet, die weniger Farben als die aktuelle Palette enthielten.

 
 

GetBBox()

Die Funktion gab immer true zurück, auch wenn die Bounding Box nicht gesetzt war.

 
 

InsertImage()

Die Transparenzfarbe von GIF Bildern konnte nicht ermittelt werden, wenn die Farbe mehrfach in der Farbtabelle enthalten war.

 
 

PDF Import

Radiobuttons, die nur eine Checkbox enthielten wurden als Checkbox importiert. Dadurch konnten keine weiteren Checkboxen zu dem Radiobutton hinzugefügt werden.

 
 

Neue Funktionen

Beschreibung

 
 

AddDeviceNProcessColorants()

Fügt einem DeviceN Farbraum eine Definition über die im Farbraum verwendeten Prozessfarben hinzu.

 
 

AddDeviceNSeparations()

Fügt einem DeviceN Farbraum eine Definition über die im Farbraum verwendeten Sonderfarben hinzu.

 
 

GetCheckBoxCharEx()

Gibt das verwendete Zeichen zum Zeichnen des On-Status zurück.

 
 

GetDeviceNAttributes()

Gibt die optionale Attribute eines DeviceN oder NChannel Farbraums zurück.

 
 

Version 2.0.44.444

 

 
 

Bugfix

Beschreibung

 
 

AES Verschlüsselung

Strings im CIDSystemInfo Dictionary von CID Fonts wurden nicht verschlüsselt. Die Datei war dadurch beschädigt.

 
 

BeginTemplate()

Wenn unmittelbar vor der Erzeugung eines Templates eine zweite PDF Instanz erzeugt wurde und sich bereits ein Template im Speicher befand, konnte das Template den Namen des zuvor erzeugten Templates zugewiesen bekommen. Dadurch konnte im Viewer das falsche Template ausgewählt werden, was zu einer falschen Seitendarstellung führt.

 
 

Codepages cpCJK_Big5_Uni, cpCJK_EUC_KR_Uni, cpCJK_950_Uni

Die CJK nach Unicode Konvertierungsroutinen dieser CJK Zeichensätze enthielten Fehler. Dadurch konnten Zeichen in der Textausgabe fehlen.

 
 

EMF Konvertierung

Schrifteigenschaften wie Unterstrichen und das Schriftgewicht wurden bei Stockfonts ignoriert.

 
 

FindField()

Die Funktion fand keine Felder mehr, die in Gruppenfeldern enthalten waren.

 
 

InsertImage()

CCITT Fax komprimierte Bilder TIFF Bilder, die unvollständige Bilddaten enthielten konnten nicht importiert werden. Solche Bilder lösen nun keinen Fehler mehr aus. Fehlende Bildteile werden Weiß initialisiert.

 
 

PDF Import

Unter bestimmten Umständen wurde der Name einer Optionalen Content Gruppe nicht mit importiert. Das resultierende Dokument war dadurch beschädigt.

Wenn ein Seitenobjekt in einer komprimierten Objektstruktur enthalten war, wurde die importierte Seite nicht vollständig initialisiert und das konnte zu Fehlern führen. Seitenobjekte dürfen zwar nicht in einer komprimierten Objektstruktur enthalten sein, dennoch ist es normaler Weise kein Problem ein solches Dokument zu importieren und Acrobat erzeugt bei solchen Dokumenten auch keinen Fehler.

ImportPDFFile() brach die Importierung ab, wenn das Dokument beschädigte PageLabels enthielt. Die Fehlerprüfung war etwas zu streng in diesem Fall, da solche Objekte problemlos ignoriert werden können.

 
 

ParseContent() / GetPageText()

Bei einer bestimmten Operatoranordnung wurde das Characterspacing bei einem RestoreGraphicState Operator nicht wiederhergestellt. Dadurch wurden die Koordinaten und Stringbreiten von nachfolgenden Texten falsch berechnet.

Die Textbreiten von Type3 Schriften wurde in manchen Fällen falsch berechnet.

 
 

ParseContent() / ComputeBBox()

Bei der Dekomprimierung von CCITT Fax 4 komprimierten Bildern konnte ein Bufferoverrun auftreten, wenn in den Dekompressionsparametern eine andere Breite als im Image Dictionary verwendet wurde.

 
 

PlaceImage()

Ein gedrehtes Koordinatensystem hatte keine Auswirkungen.

 
 

SetFont()

Unter Mac OSX wurden keine Schriften aus dem Verzeichnis ~/Library/Fonts/ geladen.

 
 

SetTextDrawMode()

Der Modus dmClipping hatte keine Auswirkungen, wenn ein Shading in den Beschneidungspfad gezeichnet wurde.

 
 

WriteFText()

TextDrawModes, die Text als Pfad verwendeten, wurden nicht richtig angewendet. Ein zuvor gesetztes Character- oder Wordspacing führte zu einer fehlerhaften Ausgabe.

 
 

Neue Funktionen / Features

Beschreibung

 
 

GetColorSpaceCount()

Gibt die Anzahl von Farbräumen im Dokument zurück.

 
 

GetColorSpaceObj()

Gibt die wichtigsten Eigenschaften eines Farbraums zurück. Die Funktion akzeptiert ein Handle bzw. Arrayindex.

 
 

GetColorSpaceObjEx()

Wie GetColorSpaceObj() jedoch akzeptiert diese Version ein IColorSpace Pointer, für den Zugriff auf alternative Farbräume. Die Funktion kann auch innerhalb der TSetFillColor() und TSetStrokeColor() Callbackfunktionen des Contentparsers verwendet werden.

 
 

GetNeedAppearance()

Gibt das NeedAppearance Flag eines Interaktiven Formulars zurück.

 
 

GetTextFieldValue()

Die Funktion gibt den Wert und Defaultwert eines Textfeldes zurück.

 
 

SetGStateFlags()

Die Funktion unterstützt folgende neue Flags:

  • gfUseImageColorSpace: Der aktive Farbraum wird ignoriert und stattdessen von der Bilddatei bezogen.

  • gfIgnoreICCProfiles: Diese Flag hat keine Auswirkung wenn das Flag gfUseImageColorSpace nicht gesetzt ist. Wenn gesetzt, werden eingebettete ICC Profile nicht zur Erzeugung eines ICCBased Farbraums verwendet. Das Bild wird stattdessen im Gerätefarbraum des ICC Profils eingefügt.

 
 

SetNeedAppearance()

Setzt das NeedAppearance Flag eines Interaktiven Formulars. Dieses Flag bewirkt, dass ein Viewer sämtliche Formularfelder neu zeichnet, wenn das Formular geöffnet wird. Das Erscheinungsbild von Formularfeldern kann sich dadurch nicht mehr geringfügig ändern, wenn in ein Formularfeld geklickt wird.

 
 

SetTextFieldValueEx()

Die Funktion ändert den Wert eines Textfeldes.

 
 

Version 2.0.42.417

 

 
 

Bugfix

Beschreibung

 
 

CheckConformance()

DynaPDF konnte eine beschädigte Datei erzeugen, wenn das Dokument eine digitale Signatur mit einem Beutzerdefiniertem Appearance Stream enthielt.

 
 

CloseFileEx()

Copy & Paste funktionierte nicht bei CID Fonts, da ToUnicode Streams nicht verschlüsselt wurden.

 
 

ComputeBBox()

Ein Dekompressionsfehler wurde ausgelöst, wenn eine importierte PDF Datei ein Flate oder LZW komprimiertes Bild enthielt, welches eine TIFF Predictor Funktion verwendete. TIFF Predictor Funktionen werden nun unterstützt.

 
 

CreateICCBasedColorSpace()

DynaPDF erzeugte einen unbekannten Fehler wenn CloseFile() aufgerufen wurde.

 
 

CreateIndexColorSpace()

Eine beschädigte Datei konnte erzeugt werden, wenn der Basisfarbraum kein Gerätefarbraum war.

 
 

CreateSeparationCS()

Eine beschädigte Datei konnte erzeugt werden, wenn der Basisfarbraum kein Gerätefarbraum war. Außerdem wurde eine falsche Interpolationsfunktion erzeugt, wenn für den alternativen Farbraum ein additiver Farbraum wie RGB oder Lab verwendet wurde.

 
 

DeleteActionFromObj()

Ein unbekannter Fehler wurde bei Aufruf von CloseFile() ausgelöst, wenn eine Javascript Funktion von einem Feld gelöscht wurde.

 
 

EMF Konvertierung

Die Breite von Stock Pens wurde zum Zeitpunkt der auf Geräteeinheiten skaliert. Das führte zu Fehlern, wenn die Transformationsmatrix oder Viewport vor der Verwendung des Pens geändert wurde.

Die Rekords Arc, ArcTo, Chord, Ellipse und Pie wurden nicht korrekt verarbeitet, wenn bottom des umgebenden Rechtecks kleiner als top war.

 
 

Fonthandling unter Mac OS X

Mac OS X TrueType Schriften enthalten häufig keine OS/2 Tabelle, welche das Gewicht der Schrift enthält. Solche Schriften wurden daher mit einem Standardgewicht von 500 geladen. Das verursacht jedoch Probleme wenn eine Fettschrift geladen werden soll. In diesem Fall wurde der Schriftstil Bold zusätzlich emuliert, was in einem Extrabold Schriftstil resultiert.

DynaPDF extrahiert das Gewicht nun vom Postscriptnamen, sofern die Schrift keine OS/2 Tabelle enthält.

 
 

Fonthandling unter Windows

In früheren Versionen wurden Systemschriften direkt aus dem Windows Schriftenverzeichnis geladen. Das führte jedoch dazu, dass gelinkte Schriften nicht geladen werden konnten, da sich diese Schriften nicht in diesem Verzeichnis befinden. Um auch gelinkte Schriften unterstützen zu können, werden Systemschriften nun von der Windows Registry geladen. Das ist außerdem etwas schneller.

 
 

GetBookmark()

Die zurückgegebene Zielseite war falsch, wenn das Lesezeichen eine GoTo Action verwendete.

 
 

ImportPDFFile()

Aufgrund einer Änderung in der Duplikatprüfung konnte ein Formular nicht mehrfach importiert werden, wenn es bereits mit FlattenForm() geflattet wurde und sich dadurch gar keine Formularfelder mehr im Speicher befanden.

 
 

IsColorPage()

Das Ergebnis konnte falsch sein, wenn das Dokument einen Indexed Farbraum enthielt, welcher als Basisfarbraum einen ICCBased Farbraum verwendete.

 
 

ParseContent()

Die Funktion löste einen Fehler aus, wenn der Content Stream eine Fließkommazahl mit einem Minuszeichen im Nachkommabereich enthielt, bspw. "75.-003". Adobes Acrobat verarbeitet solche ungültig formatierte Zahlen ohne einen Fehler auszulösen. Um ein vergleichbares Laufzeitverhalten zu erreichen, ignoriert DynaPDF nun den Nachkommawert und löst keinen Fehler mehr aus.

 
 

PDF Import

Die Änderungen in inkrementell veränderten PDF Dateien mit komprimierter Objektstruktur wurden bei der Importierung ignoriert.

Der Strukturbaum von Tagged PDF Dateien wurde nicht importiert, wenn der Baum ein ClassMap mit einer Klasse enthielt, die ein Array von Attribute Dictionaries verwendete. Der Strukturbaum ist nicht erforderlich, jedoch gehen die Tagging Informationen verloren.

DeviceN Farbräume, die als alternativen Farbraum einen Geräteunabhängigen Farbraum verwendeten, wurden nicht korrekt importiert. Die neu erzeugte PDF Datei konnte dadurch beschädigt sein.

 
 

ScaleCoords()

Die neue Transformationsmatrix wurde rechts und nicht linksherum mit der aktuellen Transformationsmatrix multipliziert. Das führt zu Fehlern, da die Richtung der Multiplikation für ein korrektes Ergebnis entscheidend ist.

 
 

Neue Features

Beschreibung

 
 

EMF Konvertierung

Der EMF Konverter wurde erweitert so dass EMF Dateien, die nicht unterstützte ROP Codes enthalten, nun automatisch gerastert werden. Das ist natürlich der ungünstigste Fall, jedoch immer noch besser als eine fehlerhafte Ausgabe. Das Rastern von EMF Dateien kann ggfls. mit dem neuen Flag mfDisableRasterEMF deaktiviert werden.

Zusätzliche neue Flags:

  • mfNoTextClipping: Das ETO_CLIPPED Flag in Textrekords wird ignoriert.

  • mfSrcCopy_Only: Bilder, die einen ROP Code außer SRCCOPY verwenden, werden ignoriert. Dieses Flag kann nützlich sein, wenn Excel 2007 Spool EMF Dateien konvertiert werden sollen.

  • mfClipRclBounds: Die Grafik wird in einen Beschneidungspfad in der Größe von rclBounds gezeichnet. Inhalte außerhalb von rclBounds sind normaler Weise unsichtbar, daher sollte das Flag immer gesetzt werden.

 
 

fntGetTextWidth()

Berechnet die Textbreite eines Binärstrings, der vom Content Parser zurückgegeben wurde.

 
 

fntTranslateString2()

Konvertiert einen Binärstring nach Unicode unter Verwendung der Schriftkodierung bzw. ToUnicode cmap.

 
 

AddImage()

Fügt ein Bild zum derzeitig geöffneten Bildpuffer hinzu.

 
 

CloseImage()

Schließt den derzeitig geöffneten Bildpuffer.

 
 

CloseTag()

Schließt ein geöffnetes Tag (siehe auch OpenTag()).

 
 

CreateAnnotAP()

Erzeugt ein benutzerdefinierten Appearance Stream für eine Anmerkung und öffnet ihn zum bearbeiten. Ein Appearance Stream ist ein normales Template in der Größe der Anmerkung zu der es gehört. Das Template muss mit EndTemplate() wieder geschlossen werden.

 
 

CreateDeviceNColorSpace()

Erzeugt einen DeviceN Farbraum.

 
 

CreateImage()

Erzeugt ein Bild im angegebenen Format. Die Funktion kann zum erzeugen von Bilddateien von einem vom Content Parser zurückgegebenen Bildpuffer verwendet werden. Die Funktion unterstützt Multipage TIFF und Singlepage Formate wie bmp, jpg, png und jpc (JPEG2000).

 
 

CreateStructureTree()

Erzeugt einen Strukturbaum, der für die Erzeugung von Tagged PDF Dateien benötigt wird.

 
 

DeleteEmbeddedFile()

Löscht eine eingebettete Datei.

 
 

FlattenAnnots()

Zeichnet Anmerkungen direkt auf die Seite und löscht sie anschließend.

 
 

FreeImageBuffer()

Gibt einen geöffneten Bildpuffer frei wenn das Bild im Speicher erzeugt wurde.

 
 

GetFontCount()

Gibt die Anzahl verwendeter Schriften in der PDF Datei zurück.

 
 

GetFontEx()

Gibt die wichtigsten Eigenschaften einer Schrift zurück.

 
 

GetImageBuffer()

Gibt den Dateipuffer eines Bildes zurück, wenn dieses im Speicher erzeugt wurde.

 
 

GetInPrintSettings()

Gibt die Druckeinstellungen der aktuell geöffneten Importdatei zurück. Die Druckeinstellungen werden zur Initialisierung des Druckerdialogs in Viewern verwendet.

 
 

GetInIsXFAForm()

Gibt true zurück, wenn die geöffnete PDF Datei ein XFA Formular enthält.

 
 

GetJavaScriptAction2()

Gibt eine Javascript Action zurück, die von einem Objekt verwendet wird.

 
 

GetPrintSettings()

Gibt die Druckeinstellungen des Dokuments zurück.

 
 

HighlightAnnot()

Mit der Funktion können Highlight, Squiggly, StrikeOut und Underline Anmerkungen erzeugt werden.

 
 

OpenTag()

Öffnet ein neues Tag in das beliebige Inhalte platziert werden können. Das Tag muss mit CloseTag() wieder geschlossen werden. Siehe Tagged PDF in der Hilfedatei.

 
 

SetPrintSettings()

Ändert oder setzt die Druckeinstellungen, welche zum Initialisieren des Druckdialogs in Viewers verwendet wird.

 
 

StampAnnot()

Erzeugt eine Stamp Anmerkung (Stempel).

 
 

Version 2.0.36.395

 

 
 

Bugfix

Beschreibung

 
 

WriteFText()

Die Funktion konnte bei einem Seitenumbruch eine Schutzverletzung auslösen.

 
 

Version 2.0.36.394

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

Imagemasken wurden nicht importiert, daher wurden transparente Bilder nach der Importierung undurchsichtig dargestellt.

Die Prüfung auf beschädigte Layer war zu streng. DynaPDF brach den PDF Import ab, wenn ein Dokument eine unvollständige OCGroup (Optional Content Group) enthielt. Solche Dokumente werden nun von DynaPDF automatisch repariert.

 
 

Font Handling

Das DBCS Leerzeichen 0x3000 (Unicode) wurde auf das normale Leerzeichen 0x20 gemappt. Das normale Leerzeichen hat in der Regel jedoch eine andere Breite, daher traten Abweichungen vom korrekten Ergebnis auf.

 
 

WriteFText()

Character Spacing wurde nicht auf ein umgebrochenes Wort angewendet, wenn das Wort nicht in das Ausgaberechteck passte.

 
 

VB .Net und C# Interfaces

Der Parameter Matrix der Callback Funktionen TBeginPattern und TBeginTemplate war falsch deklariert.

 
 

Version 2.0.36.390

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

Wenn ein Template eine Matrix in Form eines  indirekten Objektes enthielt, dann konnte DynaPDF in einer Endlosschleife landen.

 
 

SetTextFieldValue()

Bei Feldgruppen, bestehend aus mehreren Textfeldern mit identischem Namen, wurden bereits existierende Appearance Streams der Kindfelder nicht überschrieben, wenn die Gruppe keinen Wert enthielt. Der tatsächliche Wert der Felder wurde in Acrobat daher nur angezeigt, wenn sich der Cursor im Feld befand.

 
 

AiCrypto Bibliothek

Die in DynaPDF verwendete AiCrypto Bibliothek enthielt Quellcodes des MD2 Hash Algorithmus. Der Algorithmus wurde zwar in DynaPDF nicht verwendet, die Quellen wurden jedoch sicherheitshalber komplett entfernt, da der Algorithmus nicht für kommerzielle Verwendung freigeben ist.

 
 

Neue Funktionen

Beschreibung

 
 

DeleteEmbeddedFile()

Die Funktion löscht eine eingebettete Datei.

 
 

Version 2.0.35.385

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

DynaPDF konnten in einer Endlosschleife landen, wenn die zu importierende PDF Datei einen beschädigten Outline Tree enthielt (in dieser Struktur werden Lesezeichen gespeichert).

Auf Big-Endian Maschinen (bspw. IBM-AIX, HP-UX usw.) konnte eine Schutzverletzung auftreten, wenn ein verschlüsseltes PDF Formular importiert wurde.

 
 

WriteFText()

In der Unicode Version von WriteFText() funktionierte das SetFont Tag nicht (\FT[]). Der Zeilenabstand (Leading) wurde nach Aufruf der OnPageBreak() Callbackfunktion immer auf die Schriftgröße gesetzt. Es war auch nicht möglich den Zeilenabstand innerhalb der Callbackfunktion zu ändern.

 
 

Version 2.0.35.380

 

 
 

Bugfix

Beschreibung

 
 

FlattenForm()

Die Textfarbe wurde unter bestimmten Umständen auf die Hintergrundfarbe eines zuvor geflatteten Formularfeldes gesetzt. Dieser Fehler konnte nur bei importierten Formularfeldern auftreten.

 
 

Tagged PDF

DynaPDF erzeugte unter bestimmten Umständen einen ungültigen Strukturbaum. Die Tagging Informationen waren dadurch teilweise unbrauchbar.

 
 

Version 2.0.35.376

 

 
 

Bugfix

Beschreibung

 
 

GetPageText()

Die Funktion konnte in einer Endlosschleife hängen bleiben, wenn eine PDF Datei  geschachtelte Templates ohne Ressourcen enthielt.

 
 

PDF Import

DynaPDF konnte eine beschädigte Datei erzeugen, wenn eine importierte PDF Datei nicht eingebettete Schriften enthielt, welche vor dem Importieren der PDF Datei bereits im Dokument verwendet wurden.

 
 

Version 2.0.35.374

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

Wenn ein Template eine Transformationsmatrix mit sehr kleinen Skalierungsfaktoren enthielt, konnte eine fehlerhafte PDF Datei erzeugt werden, da die Matrix nur mit zweistelliger Genauigkeit ausgegeben wurde.

Beschädigte LZW komprimierte Streams wurden bislang vollständig dekomprimiert, wobei ungültige LZW Codes ignoriert wurden. Besser ist es jedoch, die Dekomprimierung beim ersten ungültigen LZW Code abzubrechen, da dadurch der noch intakte Teil leichter gerettet werden kann.

Adobe's LiveCycle Designer 8.0 schreibt in Layern, die ein Usage Creator Info Dictionary enthalten, den Schlüssel Subtype als String und nicht als Name Objekt, wie es eigentlich sein sollte. Das führte dazu, dass der Layer nicht importiert wurde. Wenn ein solcher Layer von einem Formularfeld oder einer Anmerkung verwendet wurde, gab DynaPDF keine Fehlermeldung aus und produzierte aufgrund des fehlenden Layers eine ungültige PDF Datei.

 
 

Content Parser

Der Content Parser landete in einer Endlosschleife, wenn ein Content Stream ein Non-Break-Space enthielt.

 
 

SetFontEx()

Die Funktion speicherte die Schrift intern im Schriftenarray von Interaktiven Formularen. Das konnte zu Fehlern führen, wenn die Schrift anschließend bspw. mit WriteFText() verwendet wurde, da die Schrift ein ungültiges Handle enthielt.

 
 

WriteFText()

Die Funktion konnte eine Schutzverletzung verursachen, wenn im OnPageBreak Ereignis die Verarbeitung abgebrochen wurde.

 
 

Version 2.0.35.370

 

 
 

Bugfix

Beschreibung

 
 

ComputeBBox()

Bei CCITT Fax komprimierten Bildern wurden weiße Pixel auf Schwarz und schwarze Pixel auf Weiß geprüft. Die Bounding Box war daher in der Regel immer so groß wie das gesamte Bild.

 
 

CreateSeparationCS()

DynaPDF erzeugte eine ungültige PDF Funktion, wenn alle Komponenten der Farbe im alternativen Farbraum 0 waren. Dadurch war die Darstellung im alternativen Farbraum immer Schwarz bei Additiven Farbräumen, bzw. Weiß bei CMYK.

 
 

EMF Konvertierung

Zeichenindexe wurden in SmallTextOut() Rekords als Unicode behandelt.

Benutzerdefinierte Farbtabellen wurden nicht auf 1 Bit Bitmaps angewendet. Die Farben solcher Bilder konnten dadurch falsch dargestellt werden.

 
 

ParseContent()

DynaPDF enthielt einen Fehler im ToUnicocde CMap Parser. Für CID Fonts konnte daher in manchen Fällen keine gültige Unicode Mapping Tabelle erstellt werden. Dieses Mapping wird zum Extrahieren von Texten benötigt.

 
 

Neue Funktionen

Beschreibung

 
 

GetAnnotEx()

Im Gegensatz zu GetAnnot() gibt die Funktion auch das Ziel von Link Anmerkungen zurück.

 
 

GetPageAnnot(),

GetPageAnnotEx()

Genau wie GetAnnot() bzw. GetAnnotEx() jedoch für Seitenweisen Zugriff.

 
 

GetPageAnnotCount()

Die Funktion gibt die Anzahl der Anmerkungen zurück die von einer Seite verwendet werden.

 
 

GetInNamedDest()

Die Funktion gibt das Ziel einer Named Destination innerhalb der aktuell geöffneten Importdatei zurück.

 
 

GetInNamedDestCount()

Die Funktion gibt die Anzahl Named Destinations zurück, die in der aktuell geöffneten Importdatei enthalten sind.

 
 

Version 2.0.33.366

 

 
 

Bugfix

Beschreibung

 
 

Interaktive Formulare

Die Hintergrund- oder Rahmenfarbe von Feldern konnte beim Speichern geändert werden, wenn die Hintergrund- oder Rahmenfarbe auf Weiß gesetzt wurde.

 
 

PDF Import

Eine sehr spezielle Codefolge innerhalb von LZW komprimierten Streams konnte dazu führen, dass nicht der gesamte Stream dekomprimiert wurde.

 
 

Version 2.0.33.364

 

 
 

Bugfix

Beschreibung

 
 

EMF Konvertierung

Die Schrift Symbol konnte nicht mit Zeichenindexen verwendet werden. Unter bestimmten Umständen konnte außerdem nicht auf Zeichenindex 32 einer Schrift zugegriffen werden, sofern die Schrift mit Zeichenindexen verwendet wurde.

Bilder wurden nicht mit dem Koordinatensystem gedreht.

Die Füllfarbe wurde vor der Konvertierung einer EMF Datei nicht mit Schwarz initialisiert, daher konnten Objekte in einer falschen Farbe ausgegeben werden, sofern vorher kein Brush gesetzt wurde.

Wenn das Highbyte einer COLORREF Struktur ungültige Werte enthielt, wurde unter bestimmten Umständen eine falsche Farbe gesetzt. Das Highbyte ist reserviert für die Systempalette.

 
 

FlattenForm()

Gedrehte Felder wurden unter bestimmten Umständen an einer falschen Position ausgegeben.

Imagebuttons wurden nicht auf die Seite gezeichnet, wenn der Default Appearance Stream leer war.

 
 

GetAnnot()

Das Feld PageNum wurde bei einigen Anmerkungstypen immer auf 0 gesetzt.

 
 

SetUseSwapFile(),
SetUseSwapFileEx()

Die Funktion verursachte eine Schutzverletzung, wenn SwapLimit auf 0 gesetzt wurde und zuvor noch keine Auslagerungsdatei verwendet wurde.

 
 

Version 2.0.33.358

 

 
 

Bugfix

Beschreibung

 
 

EMF Konvertierung

Die Bounding Box einer EMF Datei kann auf unterschiedliche Arten berechnet werden. Während die meisten EMF Viewer bspw. Objekte außerhalb des Ausgaberechtecks nicht anzeigen, erweitert die Funktion PlayEnhMetaFile() das Ausgaberechteck damit auch solche Objekte sichtbar werden. Standardmäßig verwendet DynaPDF letztere Variante, um EMF Dateien zu konvertieren. Damit ein identisches Ergebnis im Vergleich zu den meisten Viewern erzielt werden kann, wurde das neue Flag mfRclFrameEx hinzugefügt. Wenn dieses Flag gesetzt ist, wird das Ausgaberechteck nicht erweitert. Wenn dieses Flag gesetzt wird, sollte auch das Flag mfClipView gesetzt werden, damit Objekte außerhalb des Ausgaberechtecks nicht angezeigt werden.

 
 

GetUserRights(), GetInEncryptionFlags()

Beide Funktionen lieferten unterschiedliche Werte zurück. Die Funktion GetInEncryptionFlags() gab den Originalwert zurück, welcher in der Regel negativ ist. GetUserRights() gab dagegen den binär invertierten Betrag zurück.

 
 

PDF Import

Bislang konnten nicht mehrere Dokumente mit Layern importiert werden. Der PDF Import wurde nun so geändert, dass Layer aus unterschiedlichen Dokumenten, mit identischem Namen, separat importiert werden. Sämtliche Layer bleiben dadurch intakt. Alternativ können Layer mit identischem Namen auch zusammengeführt werden. Hierzu wurde das neue Flag if2MergeLayers hinzugefügt. Dieses Flag muss mit der neuen Funktion SetImportFlags2() gesetzt werden.

 
 

DynaPDF für Mac OS X

Die vorkompilierten Binaries konnten nicht unter Mac OS X 10.4 gelinkt werden.

 
 

Neue Funktionen

Beschreibung

 
 

ComputeBBox()

Die Funktion berechnet den sichtbaren Bereich einer Seite.

 
 

ConvertColors()

Die Funktion konvertiert RGB Schwarz/Weiß nach Grau. Diese Konvertierung ist nützlich, wenn Farbdrucker RGB Schwarz/Weiß als Farbe verarbeiten. Die Druckkosten pro Seite sind im S/W Modus in der Regel erheblich geringer, daher bietet sich die Konvertierung insbesondere im Massendruck an.

 
 

SetImportFlags2()

Mit der Funktion können zusätzliche Flags zur Steuerung des PDF Imports gesetzt werden.

 
 

Version 2.0.31.353

 

 
 

Bugfix

Beschreibung

 
 

EMF Konvertierung

Wenn eine im Unicode Modus geladene Schrift mit Zeichenindexen verwendet wurde, konnte sich unter bestimmten Umständen die Schriftgröße ändern.

 
 

PDF Import

Das Ziel von importierten Lesezeichen ging verloren, wenn es über eine sog. Inline Action definiert wurde.

 
 

Globale Javaskripte

Mit DynaPDF erzeugte Javaskriptfunktionen wurden in manchen Fällen in Acrobat nicht ausgeführt.

 
 

Interaktive Formulare

Alle Funktionen zur Erzeugung von Feldern gaben ein falsches Handle zurück, wenn zwei Felder mit identischem Namen erzeugt wurden. Der Fehler trat nur beim jeweils zweiten Feld mit identischen Namen auf.

 
 

DynaPDF für Mac OS X

Die Mac OS X Version enthielt einen Fehler im Fontloader. Dadurch war es bspw. nicht möglich Type1 Schriften aus Resourceforks zu laden. In manchen Fällen war die Ladezeit der Schrifttabelle sehr lang.

 
 

Version 2.0.31.349

 

 
 

Bugfix

Beschreibung

 
 

Content Parser

Der Colorspace Operator wurde nicht korrekt verarbeitet, wenn mit dem Operator ein Gerätefarbraum als Inline Farbraum gesetzt wurde. Ein Fehler trat nur auf, wenn anschließend eine Farbe mit einem SetColor Operator gesetzt wurde. Die Verarbeitung des Contentstreams wurde dann abgebrochen.

 
 

SetMetaConvFlags()

Das Flag mfNoTextScaling wurde während der Konvertierung ignoriert. Diese Flag ist nützlich wenn niedrig aufgelöste EMF Dateien konvertiert werden sollen, da bei solchen Dateien häufig ungleichmäßige Abstände zwischen Schriftzeichen entstehen können.

 
 

SetTextDrawMode()

Die aktuelle Füll- oder Strichfarbe wurde nicht gesetzt, wenn ein Text im Modus dmFillClip oder dmStrokeClip ausgegeben wurde. Es war außerdem nicht möglich einen Text mit dem zuvor ausgegebenen Text zu beschneiden, wenn nicht vorher eine Vektorgrafik oder ein Bild ausgegeben wurde.

 
 

Delphi Interface

Der Konstruktor und Destruktor der Klasse TPDF war nicht threadsicher, da der Instanzzähler nicht threadsicher inkrementiert bzw. dekrementiert wurde.

 
 

Version 2.0.30.346

 

 
 

Bugfix

Beschreibung

 
 

CheckConformance()

Die Funktion konnte eine beschädigte Datei erzeugen, wenn das Dokument konvertierte EMF Dateien enthielt, welche Unicode Schriften verwendeten.

 
 

CreateColItemString()

Der optionale Parameter Prefix wurde nicht korrekt in die PDF Datei geschrieben.

 
 

SetFont()

Aufgrund einer falsch initialisierten Variablen konnten keine Type1 Schriften geladen werden.

 
 

SetLineDashPattern()

Ein zuvor gesetztes Pattern wurde nicht gelöscht, stattdessen wurde das neue Pattern zum vorherigen hinzugefügt. Bei häufigen Aufrufen der Funktion konnte dadurch eine fehlerhafte PDF Datei entstehen.

 
 

Neue Features

Beschreibung

 
 

Tagged PDF

Ab sofort können mit DynaPDF auch Tagged PDF Dateien erzeugt werden. Die hierzu benötigten Funktionen werden allerdings erst im kommenden Update dokumentiert.

 
 

Version 2.0.29.344

 

 
 

Bugfix

Beschreibung

 
 

GetBookmark()

Das genaue Ziel wurde nicht zurückgegeben, wenn das Lesezeichen eine GoTo Action verwendete.

 
 

Rectangle()

Wenn erst ein Rechteck gefüllt ausgegeben wurde und anschließend ein oder mehrere Rechtecke im Uhrzeigersinn gezeichnet und mit StrokePath() ausgegeben wurden, dann wurden die Rechtecke nicht geschlossen.

 
 

SetFieldExpValue()

Der Exportwert von Checkboxen mit identischen Namen, die in einem Gruppenfeld organisiert waren, konnte nicht geändert werden. Solche Checkboxen verhalten sich wie ein Radiobutton, wenn die Checkboxen unterschiedliche Exportwerte verwenden.

 
 

Version 2.0.29.343

 

 
 

Bugfix

Beschreibung

 
 

EMF Konvertierung

ExcludeClipRect Rekords wurden falsch angewendet, wenn sich kein anderer Clippingbereich im Speicher befand.

 
 

PDF Import

Das Aussehen von importierten Buttons konnte sich ändern, wenn der Button ein Icon Fit Dictionary in Form eines indirekten Objektes verwendete.

 
 

Neue Features

Beschreibung

 
 

Mac OS X Font Handling

Das Fonthandling wurde für Mac OS X erweitert. Systemschriften werden nun wie unter Windows per Default automatisch geladen. DynaPDF lädt Schriften aus folgenden Ordnern: /System/Library/Fonts, /Library/Fonts, und ~Library/Fonts. Andere Schriftverzeichnisse können manuell nachgeladen werden. Abhängigkeiten zum Carbon Framework wurden entfernt.

 
 

Version 2.0.29.342

 

 
 

Bugfix

Beschreibung

 
 

EMF Konvertierung

Das Koordinatensystem wurde nicht korrekt skaliert, wenn die Skalierung mit ScaleVieportExt() oder ScaleWindowExt() vorgenommen wurde.

 
 

PDF Date/Time Strings

DynaPDF erzeugte aufgrund von Änderungen in der Berechnung von Date/Time Strings ungültig formatierte Strings, wenn die Zeitdifferenz zwischen Lokaler und GM Time negativ war. Durch diesen Fehler konnten bspw. digitale Signaturen nicht in Adobes Acrobat auf Gültigkeit überprüft werden.

 
 

configure Skript für Linux/Unix

Das configure Skript, welches mit DynaPDF Enterprise ausgeliefert wird, funktionierte nicht unter Mac OS X Tiger. Das Skript wurde nun erweitert, damit DynaPDF unter Mac OS X ohne Änderungen kompiliert werden kann. Vorkompilierte Binaries für Mac OS X sind in Kürze verfügbar. Außerdem wird das Schrifthandling so erweitert, dass Mac Systemschriften, wie unter Windows, ganz normal geladen werden können.

 
 

Version 2.0.29.338

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

Die Version 2.0.29.337 importierte keine globalen Objekte, wie bspw. Lesezeichen, JavaScripte, eingebettete Dateien usw. Diese Version war nur für ca. 12 Stunden verfügbar.

 
 

Version 2.0.29.337

 

 
 

Bugfix

Beschreibung

 
 

DrawCircle()

Die Startposition wurde nicht neu gesetzt, wenn mehrere Kreise in einem Pfad zusammen ausgegeben wurden oder wenn der Kreis zu einem zuvor gezeichneten Pfad hinzugefügt wurde und damit zusammen ausgegeben wurde. Augrund dieses Fehlers entstanden Verbindungslinien zwischen dem Kreis und der zuvor gezeichneten Figur.

 
 

JPEG2000 Komprimierte Bilder

DynaPDF konnte einige gängige JPEG2000 Marker nicht lesen und brach dadurch den Import mit einer Fehlermeldung ab. Es trat außerdem ein Speicherleck von 8 Bytes auf, wenn solche Bilder von einem Bildpuffer geladen wurden.

 
 

PDF Import

DynaPDF konnte keine PDF Dateien importieren, die das Dictionary ViewerPreferences in Form eines indirekten PDF Objektes enthielten.

Die Duplikatprüfung für importierte Seiten ist ab sofort weniger restriktiv. Seiten können nun auch mehrfach importiert werden, auch mit gesetztem ifImportAsPage Flag. Formularfelder können jedoch nur einmal importiert werden, da ansonsten eine beschädigte Datei erzeugt werden würde.

 
 

Schrifteinbettung

In Adobes Acrobat traten bei manchen TrueType Schriften Artefakte auf, wenn die Schrift sehr klein dargestellt wurde.

 
 

WriteFText()

Wenn ein Pagebreak Ereignis ausgeführt, die Seite geschlossen, und eine Schrift mit der Codepage cpUnicode verwendet wurde, brach DynaPDF die Verarbeitung mit einer Out of Memeory Exception ab. Dieser Fehler trat auf, da die benötigte Schriftdatei im Pagebreak Ereignis geschlossen und nicht wieder geöffnet wurde. Der Fehler wurde intern sauber abgefangen, die Weiterverarbeitung der Datei war jedoch nicht möglich.

 
 

Version 2.0.28.336

 

 
 

Bugfix

Beschreibung

 
 

DrawChord(), RoundRect(), RoundRectEx()

Die Startposition wurde nicht neu gesetzt, wenn mehrere solcher Figuren in einem Pfad zusammen ausgegeben wurden.

 
 

14 PDF Standardschriften

Aufgrund von Änderungen im Fonthandling wurden Leerzeichen der 14 PDF Standardschriften nicht bei der Berechnung der Stringbreite für unterstrichenen oder durchgestrichen Text berücksichtigt. Die Linien waren dadurch zu kurz. GetTextWidth() war von dem Fehler nicht betroffen, da hier ein anderer Algorithmus verwendet wird.

 
 

Version 2.0.28.335

 

 
 

Bugfix

Beschreibung

 
 

Ellipsen, Kreise

Adobes Acrobat erzeugt bei gestrichelter Ausgabe Artefakte, wenn der Endpunkt der letzten Bezierkurve des Kreises oder Ellipse nicht absolut exakt auf dem Startpunkt der ersten Kurve liegt. Bei Füllungen tritt der Effekt nicht auf. Die Berechnung wurde so geändert, dass die letzte Bezierkurve die Erste ein wenig überlappt.

 
 

Importierte Formulare

DynaPDF erzeugte unter bestimmten Umständen einen ungültigen String für die Default Appearance eines Feldes. Dieser Fehler trat bislang nur bei Comboboxen auf, zumindest theoretisch konnten jedoch auch andere Feldtypen betroffen sein.

 
 

ParseContent()

Die Funktion verursachte eine Schutzverletzung, wenn keine Callbackfunktion zur Verarbeitung von Texten übergeben wurde.

 
 

Shadings

Die von Shadings verwendeten PDF Funktionen wurden ohne Domain ausgegeben. Aufgrund des fehlenden Schlüssels war die PDF Datei ungültig. Dieser Fehler trat nur bei neu erzeugten Shadings auf. Importierte Shadings wurden korrekt ausgegeben.

 
 

Schrifthandling

Die Einbettungsrechte von TrueType und OpenType Schriften wurden in Version 2.0.28.332 nicht überprüft. Es konnten daher auch Schriften eingebettet werden, die aufgrund der Lizenzrechte in der Schrift nicht eingebettet werden dürfen.

 
 

Version 2.0.28.331

 

 
 

Bugfix

Beschreibung

 
 

PDF Erzeugungszeit

DynaPDF berücksichtigte nicht die aktuelle Sommer- bzw. Winterzeit Abweichung. Die in der PDF Datei gespeicherte Zeit konnte daher von der tatsächlichen Erzeugungszeit abweichen.

 
 

PDF Import

DynaPDF produzierte eine beschädigte PDF Datei, wenn die Ausgangsdatei eine Stitchingfunktion mit nur einer Unterfunktion enthielt.

 
 

Visual Basic Interface

Die Verarbeitung von Unicode Zeichenfolgen musste noch einmal geändert werden, da die aktuelle Implementierung nicht auf Asiatischen Systemen funktionierte. Außerdem waren die Funktionen GetFont(), GetPageLabel() und ConvToUnicode() unvollständig oder fehlerhaft implementiert.

 
 

Version 2.0.28.330

 

 
 

Bugfix

Beschreibung

 
 

GetFont()

CID Fonts wurden nur unvollständig zurückgegeben.

 
 

GetPageText()

Die Textfarbe wurde nicht korrekt zurückgegeben.

 
 

PDF Import

Importierte DeviceN Farbräume wurden unter bestimmten Umständen fehlerhaft in die Ausgabedatei geschrieben. Das Dokument war dadurch beschädigt.

 
 

ReplacePageText(), ReplacePageTextEx()

Wenn der Begin Text Operator (BT) nicht mit einem Trennzeichen abgeschlossen wurde, konnte eine beschädigte Datei erzeugt werden, sofern das Textobjekt keine weiteren Texte enthielt.

 
 

WriteFText()

Die Funktion wechselte die Schrift nicht innerhalb eines Textblocks, wenn die Schrift über den Postscriptnamen ausgewählt wurde.

 
 

Version 2.0.28.328

 

 
 

Bugfix

Beschreibung

 
 

EMF Konvertierung

Der Grafikstatus wurde nicht wiederhergestellt, wenn das Clipping Flag im Textrekord gesetzt war und wenn der Text mit einer Schrift mit DEFAULT_CHARSET oder gesetztem mfUnicode Flag ausgegeben wurde, und der Text nur aus Leerzeichen bestand. Dieser Fehler konnte Koordinatenprobleme verursachen und der Clipping Bereich wurde nicht mehr deaktiviert.

 
 

Unicode Textausgabe

Aufgrund von Änderungen in der Fontklasse in Version 2.0.28.325 wurden Leerzeichen von Unicode Texten zweimal ausgegeben, wenn die Schrift die mit der Codepage cpUnicode geladen wurde.

 
 

Version 2.0.28.326

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

DynaPDF löste eine Schutzverletzung aus, wenn eine PDF Datei einen ungültigen Blendmode enthielt.

 
 

Neue Features

Beschreibung

 
 

ConvColor(), GetPageText()

Für die Konvertierung von CMYK Farben nach RGB wird ab sofort ein CIE basierter Algorithmus verwendet. Auf diese Weise können Farbdifferenzen erheblich reduziert werden.

 
 

Version 2.0.28.325

 

 
 

Bugfix

Beschreibung

 
 

Unicode Text Ausgabe

Der Fehler in der Verarbeitung von Unicode Texten war immer noch nicht vollständig behoben.

 
 

GetPageText(), Content Parser

Einzelne Zeichen von Type1 Schriften konnten unter bestimmten Umständen nicht nach Unicode konvertiert werden.

 
 

Version 2.0.28.324

 

 
 

Bugfix

Beschreibung

 
 

GIF Bilder

Bilder mit einem ungültigen End of Encoding Marker konnten nicht importiert werden.

 
 

Unicode Text Ausgabe

Das erste eingebettete Zeichen wurde ignoriert, wenn die Schrift kein Leerzeichen enthielt und der String nur dieses eine Zeichen enthielt.

 
 

Delphi Interface

Das Interface enthielt eine ungültige Funktionsdeklaration wenn sofern es mit Delphi 4 oder früher kompiliert wurde.

 
 

Version 2.0.28.323

 

 
 

Bugfix

Beschreibung

 
 

Schriftselektion

Aufgrund einer falsch initialisierten Variablen konnten Schriftstile wie Fett oder Kursiv nicht emuliert werden, da bereits die Schriftauswahl scheiterte, wenn die Schrift in dem gewünschten Stil nicht verfügbar war. Dieser Fehler konnte bei der Konvertierung von EMF Dateien zur Auswahl einer Ersatzschrift führen.

 
 

Image Buttons

Die Größe von importierten Image Buttons konnte sich ändern, wenn eine Reset Form Action ausgeführt wurde und sofern der Button einen unsichtbaren Rahmen mit einer Stärke ungleich 1 Unit verwendete.

 
 

DynaPDF für AIX

Aufgrund einer nicht gelinkten Bibliothek wurde DynaPDF mit einem Coredump beendet, wenn DynaPDF intern eine Exception auslöste. Unter AIX muss die Bibliothek libsubc++ zur DLL hinzugelinkt werden, da die Standardbibliotheken unter AIX das C++ Exceptionhandling unvollständig implementieren.

 
 

IsEmptyPage(), IsColorPage()

Aufgrund einer falsch initialisierten Variablen konnte eine Leer- oder Farbseite nicht erkannt werden, wenn die Seite keinen SetColor Operator enthielt.

 
 

Version 2.0.28.322

 

 
 

Bugfix

Beschreibung

 
 

GetTextWidth()

Die Textbreite von Unicode Strings wurde unter bestimmten Umständen nicht korrekt berechnet, wenn anstelle von Unicode ein beliebiger 8 Bit Zeichensatz verwendet wurde und ein Zeichen nicht in der Schrift vorhanden war.

 
 

EMF Konvertierung

Bildmasken wurden in bestimmten Fällen falsch konvertiert, dadurch war das Bild, das die Maske verwendet, nicht mehr sichtbar.

 
 

Image Buttons

Image Button veränderten sich immer noch geringfügig, wenn eine Reset Form Action ausgeführt wurde und die Rahmenstärke auf zwei oder drei Units gesetzt wurde.

 
 

Neue Features

Beschreibung

 
 

SetFont()

Ab sofort werden nur noch tatsächlich benötigte Teile einer Schrift in den Speicher geladen. Dadurch verringert sich der Speicherverbrauch drastisch, insbesondere wenn sehr große Schriften verwendet werden.

 
 

Version 2.0.28.321

 

 
 

Bugfix

Beschreibung

 
 

PDF Import

Farbverläufe wurden unter bestimmten nicht korrekt importiert. Die resultierende Datei brachte Acrobat zum Absturz.

Importierte unkomprimierte Bilder wurden bei Verwendung einer Auslagerungsdatei nicht korrekt in die PDF Datei geschrieben.

 
 

Unicode Javascripte

Javascripte im Unicode Format wurden in einem ungültigen Format in die PDF Datei geschrieben, wenn das Script länger als 128 Zeichen war.

 
 

Visual Basic Interface

Sämtliche Unicode Funktionen waren im Visual Basic Interface falsch deklariert. Dadurch war keine Ausgabe von Zeichen außerhalb des ANSI Zeichensatzes möglich.

Die Funktion GetBookmark() war falsch deklariert.

 
 

Image Buttons

Image Buttons veränderten sich geringfügig, wenn eine Reset Form Aktion ausgeführt wurde, da die Bildgröße nicht exakt genug berechnet wurde.

 
 

SetFontW(), SetFontExW()

Die Unicode Versionen von SetFont() enthielten einen Fehler in der Duplikatprüfung von zu ladenden Schriften. Bedingt dadurch wurde eine bereits geladene Schrift mehrfach geladen und in die PDF Datei geschrieben. Die PDF Dateien waren aufgrund dieses Fehlers ungewöhnlich groß.

 
 

Neue Features

Beschreibung

 
 

EMF Konvertierung

DynaPDF enthält nun das neue Flag mfGDIFontSelection, mit dem die Schriftauswahl über einen GDI Device Context erzwungen werden kann. Auf diese Weise kann sichergestellt werden, dass DynaPDF exakt die Schriften verwendet, die auch die GDI zum Rendern der EMF Datei verwenden würde.

 
 

GetPageText(), ReplacePageText(),

ReplacePageTextEx()

Die Funktion GetPageText() verwendet nun intern den Contentparser von DynaPDF um Texte in einer PDF Datei zurückzugeben. Texte werden nun inkl. Kernung Array zurückgegeben, welches für die Ersetzung von Texten benötigt wird.

Außerdem wird die Textfarbe nun automatisch in einen Gerätefarbraum konvertiert, wenn ein komplexer Farbraum wie Separation oder DeviceN verwendet wird.

ReplacePageText() kann nun Optional nur eine bestimmte Anzahl von Kerning Rekords löschen. Dadurch wird das Ersetzen von Texten erheblich vereinfacht.

DynaPDF enthält nun das neue Demo Projekt edit_text, welches das Finden und Ersetzen von Texten demonstriert.

Aufgrund der Erweiterung der Funktion GetPageText() mussten die Interfaces für VB .Net und C# geändert werden. Der Austausch der Bibliothek ist nach wie vor ohne Neukompilierung möglich. Ihre Quellcodes müssen jedoch geringfügig modifiziert werden, wenn Sie Ihre Anwendung Neukompilieren möchten.

 
 

Transparent GIF Bilder

Die Transparenzfarbe von GIF Bildern wird nun aus der Bilddatei entnommen, wenn die Transparenzfarbe auf NO_COLOR gesetzt wird. Bilder ohne Transparenzfarbe werden dann undurchsichtig eingefügt.

 
 

Version 2.0.27.319

 

 
 

Bugfix

Beschreibung

 
 

Interaktive Formulare

Formularfelder können ab sofort nur noch Schriften mit der Codepage 1252 verwenden. Aufgrund von Änderungen in Adobes Acrobat ist die Verwendung von anderen Zeichensätzen nicht mehr möglich. Type1 Schriften werden innerhalb von Formularfeldern offensichtlich auch nicht mehr unterstützt. Die Verwendung von Type1 Schriften ist nicht eingeschränkt, solche Formular sollten aber mit verschiedenen Acrobat Versionen ausgiebig getestet werden.

 
 

PDF Import

Komprimierte PDF 1.5 Dateien konnten unter bestimmten Umständen nicht vollständig importiert werden.

Run Length komprimierte Content Streams konnten nicht importiert werden. Dieser Filter wird normaler Weise ausschließlich für Bilder verwendet.

 
 

Version 2.0.27.318

 

 
 

Bugfix

Beschreibung

 
 

Codepage 862

Der Bidi Algorithmus wurde auf Texte der Codepage 862 angewendet. Das ist falsch, dieser Zeichensatz muss ohne Bidi Algorithmus verarbeitet werden.

 
 

Version 2.0.27.317

 

 
 

Bugfix

Beschreibung

 
 

EMF Konverter

Die Mapping Modes MM_LOMETRIC und MM_HIMETRIC führten zu einer falschen Skalierung des Koordinatensystems.

 
 

PDF Import

Während der Importierung von komprimierten PDF 1.5 Dateien konnte unter bestimmten Umständen eine Zugriffsverletzung auftreten.

 
 

Bidirektionale Zeichensätze

Auf bidirektionale 8 Bit Zeichensätze wurde kein Bidi Algorithmus angewendet. Bei der Verarbeitung von Unicode kann der Bidi Modus nun mit der Funktion SetBidiMode() eingestellt werden. Derzeit werden nur Hebräische Zeichensätze unterstützt, da für komplexe Sprachen, wie bspw. Arabisch, weitere Unicode Algorithmen benötigt werden, die in DynaPDF nicht enthalten sind.

 
 

Version 2.0.26.316

 

 
 

Bugfix

Beschreibung

 
 

EMF Konverter

Aufgrund der geänderten Handhabung von Textpfaden wurden Line Dash Patterns nicht zurückgesetzt, wenn dies erforderlich war.

 
 

Visual Basic Interface

Der Datentyp des Parameters "Value" der Funktion SetSaveNewImgFmt() war als Long anstelle von Boolean deklariert.

 
 

Neue Features

Beschreibung

 
 

JPEG Import

JPEG komprimierte Bilder werden per Default im Pass through Modus verarbeitet, wenn das Bild nicht herunterskaliert oder aufgrund des verwendeten Farbraums konvertiert werden muss. In machen Fällen ist jedoch das explizite Neukomprimieren von JPEG Bildern erwünscht, was bislang nicht möglich war.

Um eine Neukomprimierung zu erreichen, kann nun die JPEG Qualität als negativer Wert übergeben werden. JPEG Bilder werden dann nicht mehr im Pass through Modus verarbeitet.

 
 

Version 2.0.26.315

 

 
 

Bugfix

Beschreibung

 
 

Interaktive Formulare

DynaPDF stürzte mit einer Zugriffverletzung ab, wenn einem Textfeld ein Wert im Unicode Format zugewiesen wurde.

 
 

PDF Import

Manche PDF Treiber verwenden für normale Streams Filternamen, die nur für Inline Images zulässig sind. Solche PDF Dateien konnten nicht importiert werden.

 
 

TIFF Import

Im alten Format komprimierte JPEG TIFFs konnten nicht importiert werden, wenn die Samplingrate nicht für alle Bildkomponenten identisch war.

 
 

Neue Features

Beschreibung

 
 

EMF Konverter

Unterstützung für PaintRgn(), FrameRgn(), OffsetRgn() und SetMetaRgn() wurde hinzugefügt.

DynaPDF enthält nun einen Polygon Clipper der die korrekte Verarbeitung der Clipping Modes RGN_OR, RGN_XOR, RGN_DIFF, und RGN_AND ermöglicht. Dadurch können nun alle Kombinationen von Clipping Regionen und Clipping Pfaden korrekt verarbeitet werden.

 
 

Version 2.0.26.314

 

 
 

Bugfix

Beschreibung

 
 

EMF Konverter

16 Bit Bilder, mit einer reinen 5 Bit Maske, wurden fälschlicher Weise mit einer 5, 6, 5 Bit Maske verarbeitet.

Line Dash Patterns, die mit einen Kosmetischen Stift ausgegeben wurden, stimmten nicht hundertprozentig mit der GDI Ausgabe überein.

Bilder, die eine Systempalette verwenden, wurden nicht ausgegeben.

Mit StretchBlt ausgegebene 1 Bit Bilder wurden nicht transparent dargestellt.

 
 

Neue Features

Beschreibung

 
 

EMF Konverter

Unterstützung für PlgBlt und MaskBlt Rekords wurde hinzugefügt.

DynaPDF erkennt nun Bildmasken, die über separate Image Rekord ausgegeben werden, damit diese zur Maskierung des darüber liegenden Bildes verwendet werden können.

 
 

Version 2.0.26.313

 

 
 

Bugfix

Beschreibung

 
 

EMF Konverter

Innerhalb von SmallTextOut() Rekords konnten Unicode Strings fälschlicher im Ansi Format verarbeitet werden, da das benötigte Flag zur Identifizierung des Stringformats nicht bekannt war. Diese Funktion ist nicht dokumentiert, daher können die benötigten Flags nur über Versuche ermittelt werden.

 
 

Interaktive Formulare

Formularfelder wurden falsch ausgegeben, wenn die Orientierung der Seite ungleich Null war und das Koordinatensystem nicht über SetOrientationEx() geändert wurde.

Aufgrund eines Fehlers in WriteFText() konnte sich DynaPDF außerdem beim Schreiben der Datei aufhängen.

 
 

SetFont()

Wenn eine Schrift mit verschiedenen Unicode basierenden Codepages verwendet wurde, und die ausgewählte Schrift nicht in den gewünschten Schriftstilen verfügbar war, dann wurde jedes mal eine neue Instanz der Schrift im Dokument eingefügt, da die Duplikatprüfung versagte. Bei großen Schriften konnte durch diesen Fehler eine Out of Memory Exception auftreten. Die Dateigröße von erzeugten Dokumenten war außerdem erheblich größer als normal.

 
 

WriteFText()

Die Funktion konnte in einer Endlosschleife Festhängen, wenn die Breite des Ausgaberechtecks kleiner als das erste Zeichen im String war.

 
 

Version 2.0.26.312

 

 
 

Bugfix

Beschreibung

 
 

Visual C# Interface

Im Visual C# Interface war die Funktion FlushPageContent() falsch implementiert. Dadurch konnten Texte nicht ersetzt werden, und Visual Studio löste eine Exception aus, wenn die Funktion aufgerufen wurde.

 
 

Dateiimport

DynaPDF produzierte eine beschädigte PDF Datei, wenn eine Transparenzgruppe einen ICC basierten Farbraum verwendete.

 
 

EMF Konvertierung

Unter bestimmten Umständen wurde ein Pfad, der gestrichelt ausgegeben wurde, nicht zurückgesetzt. Dadurch wurden die darauf folgenden MoveTo / LineTo Aufrufe als Pfad ausgegeben oder ignoriert. Dieser Fehler führte nur in sehr speziellen Fällen zu falschen Ausgaben.

 
 

Version 2.0.26.311

 

 
 

Bugfix

Beschreibung

 
 

.Net Interfaces, Beispielprojekte

Im Visual C# Interface waren alle Funktionen falsch deklariert, die Dateipuffer als Parameter akzeptieren.

In Visual Studio 2005 akzeptieren String Konvertierungsfunktionen keine Null-Pointer mehr. Daher mussten alle Funktionen geändert werden, die nicht verwaltete Strings in .Net Strings konvertieren.

Acrobat 8 unterstützt keine relativen Dateipfade mehr, dadurch konnte im Beispielprojekt Personalize die Originaldatei nicht geöffnet werden.

 
 

Dateiimport

Bei der Importierung von DeviceN und NChannel Farbräumen konnte unter bestimmten Umständen ein Fehler auftreten. Der Dateiimport wurde dann mit einer Fehlermeldung abgebrochen.

 
 

EMF Konvertierung

Der Grafikstatus wurde bei gesetztem Flag mfClipView nicht gesichert. Daher konnte auf eine PDF Seite jeweils nur eine EMF Datei platziert werden, da der Clipping Bereich nicht zurückgesetzt wurde.

 
 

Neue Features

Beschreibung

 
 

Dateiimport

XFA Formulare können ab sofort importiert werden. Die Bearbeitung ist jedoch nicht möglich.

Layer werden ab sofort nativ importiert. Ungültige Layer, die von einigen Adobe Anwendungen erzeugt werden, verhindern nun nicht mehr das Zusammenführen von mehreren PDF Dateien. PDF Dateien, die echte Layer enthalten, können jedoch nach wie vor nicht zusammengeführt werden.

 
 

Version 2.0.26.310

 

 
 

Bugfix

Beschreibung

 
 

Strukturen TPDFExtGState und TPDFExtGState2

Die Strukturen mussten leider noch einmal verändert werden, da die bisherige Definition zu ungünstig für eine effektive Verarbeitung ausgelegt war.

Die Struktur TPDFExtGState, welche zur Erzeugung eines erweiterten Grafikstatus verwendet wird, wurde außerdem um Variablen zur Definierung von Objekttransparenz erweitert. Somit können nun Vektorgrafiken und Bilder mit echter PDF Transparenz ausgegeben werden.

 
 

Version 2.0.25.309

 

 
 

Bugfix

Beschreibung

 
 

IsColorPage()

Leerzeichen wurden nicht übersprungen, daher konnte eine Schwarz/Weiß Seite als Farbseite erkannt werden.

Bilder, die eine Farbtabelle verwenden, wurden unter bestimmten Umständen als farbig erkannt, auch wenn nur Graustufen verwendet wurden.

 
 

IsEmptyPage()

Leerzeichen wurden nicht übersprungen, daher konnten Seiten, auf denen Leerzeichen ausgegeben wurden, nicht als Leer erkannt werden.

 
 

Version 2.0.25.308

 

 
 

Bugfix

Beschreibung

 
 

EMF-Import

Die Koordinatenberechnung von Texten konnte unter bestimmten Voraussetzungen scheitern.

Die Vorder- und Hintergrundfarbe von Bitmap Patterns wurde nicht dynamisch geändert.

Die Farbpalette von 1 Bit Bildern wurde nicht berücksichtigt.

Wenn Texte in Unicode und als Glyphindexes ausgegeben wurden, entstand eine beschädigte PDF Datei, sofern für beide Ausgabevarianten die selbe Schrift verwendet wurde.

Ineinander verschachtelte Clippingpfade wurden nicht korrekt verarbeitet.

ModifyWorldTransform: TRANS_LEFTMULTIPLY bzw. TRANS_RIGHTMULTIPLY wurden vertauscht berechnet. Die Transformationsmatrix konnte dadurch ungültig werden.

In 1 Bit Bitmap Patterns wurde unter bestimmten Voraussetzungen die Ausgabefarbe im Pattern gespeichert. Das ist nicht zulässig und führte daher zu einer beschädigten PDF Datei.

 
 

PDF-Import

PDF Dateien die sich selbst referenzierende Ressourcen Objekte enthalten konnten nicht importiert werden.

Dokumente mit fehlerhaften Dokumentinfo Einträgen konnten nicht importiert werden. Die Dokumentinfo ist nicht unbedingt erforderlich, daher können solche Fehler ignoriert werden, sofern eine Reparatur nicht möglich ist.

Dokumente mit ungültigen Trailern konnten nicht importiert werden. Das ist kein Fehler in DynaPDF, es ist jedoch nun möglich solche Dokumente zu reparieren.

Fehlerhafte PDF Objekte wurden in der Regel genauso fehlerhaft importiert, wie sie im Originaldokument vorgefunden wurden. DynaPDF führt nun umfangreiche Prüfungen durch und nimmt Reparaturen ggfls. automatisch vor. Ist eine Reparatur nicht möglich, wird die betroffene Seite nicht importiert.

Dokumente, die beschädigte Seiten enthalten, konnten mit ImportPDFFile() nicht importiert werden. DynaPDF gibt nun eine Warnung aus, importiert jedoch alle unbeschädigten Seiten, sofern dies möglich ist.

Die zu Layern gehörenden globalen Objekte wurden nicht importiert wurden, wenn nur einzelne Seiten des Dokuments importiert wurden. Die Layer wurden dadurch ungültig.

Sog. Feldgruppen in Interaktiven Formularen wurden nicht immer korrekt importiert, oder waren anschließend nicht bearbeitbar.

Ein Speicherleck konnte auftreten, wenn Flate komprimierte Streams keinen End of Encoding Marker enthalten.

 
 

PDF/A 1b Ausgabe

Der für PDF/A 1b Dateien erforderliche Identifizierungsschlüssel wurde in einem ungültigen Namensraum geschrieben, da der Namensbereich im PDF/A Standard falsch dokumentiert wurde.

 
 

ClipPath()

Die Erzeugung von Clipping Pfaden, unter Verwendung der Even Odd Regel, war nicht in Kombination mit geschlossen Objekten wie Rechtecke, Kreise, Ellipsen usw. möglich.

 
 

Interaktive Formulare

Feldgruppen konnten nicht in allen möglichen Kombinationen korrekt erzeugt werden.

Der Status von Checkboxen wurde innerhalb einer Feldgruppe nicht korrekt gesetzt, wenn Checkboxen innerhalb der Gruppe unterschiedliche Exportwerte verwendeten.

Obige Fehler wirkten sich auch auf die Funktion FlattenForm() aus.

Die Schriftgröße von Textfeldern wurde nicht korrekt berechnet, wenn ein mehrzeiliges Textfeld mit gesetztem Flag ffMultiline und Schriftgröße auf 0 (Autoheight), erzeugt oder importiert wurde.

 
 

GetFTextHeight()

Abschließende Zeilenumbrüche wurden nicht berücksichtigt. Die Funktion gab daher nur die sichtbare Höhe des Textes zurück. Dieses Verhalten hat sich als problematisch erwiesen und wurde daher geändert.

 
 

WriteFText()

Wenn eine Textzeile nur aus Leerzeichen bestand, wurden sämtliche Leerzeichen nicht ausgegeben und die Position des ersten sichtbaren Zeichens wurde auf den Zeilenanfang gesetzt.

Einzelne Wörter, die breiter als das Ausgaberechteck waren, wurden nicht umgebrochen.

 
 

Neue Funktionen

Beschreibung

 
 

AddBookmarkEx

Fügt ein neues Lesezeichen ein unter Verwendung einer Named Destination as Ziel.

 
 

AttachFile

Fügt einen Dateianhang hinzu.

 
 

AttachFileEx

Wie AttachFile, akzeptiert jedoch einen Dateipuffer.

 
 

ChangeAnnotName

Ändert den Namen einer Anmerkung.

 
 

ChangeFontStyleEx

Ändert den Schriftstil und schaltet ggfl. die Emulation von Bold oder Italic ein.

 
 

CheckCollection

Prüft eine PDF Collection (PDF Paket) auf Fehler.

 
 

CheckConformance

Prüft auf Konformität zu PDF/A und ändert oder löscht ggfls. nicht zulässige Objekte.

 
 

Create3DAnnot

Erzeugt eine 3D Anmerkung von einer U3D Datei.

 
 

Create3DBackground

Setzt die Hintergrundfarbe einer 3D Anmerkung.

 
 

Create3DGotoViewAction

Mit einer GotoViewAction kann die Ansicht einer 3D Anmerkung gewechselt werden.

 
 

Create3DProjection

Mit einer 3D Projektion kann die Darstellung einer 3D Anmerkung verändert werden.

 
 

Create3DView

Erzeugt eine neue 3D Ansicht zu einer 3D Anmerkung.

 
 

CreateColItemDate

Erzeugt ein benutzerdefiniertes Datumsfeld in einem Dateianhang.

 
 

CreateColItemNumber

Erzeugt ein benutzerdefiniertes numerisches Feld in einem Dateianhang.

 
 

CreateColItemString

Erzeugt ein benutzerdefiniertes Textfeld in einem Dateianhang.

 
 

CreateCollection

Erzeugt eine PDF Collection, auch als PDF Paket bekannt (PDF 1.7).

 
 

CreateCollectionField

Erzeugt ein benutzerdefiniertes Feld in einer PDF Collection.

 
 

CreateExtGState

Erzeugt einen erweiterten Grafikstatus bspw. zum Setzen des Überdruckmodus.

 
 

CreateGoToActionEx

Erzeugt eine GoTo Action unter Verwendung einer Named Destination as Ziel.

 
 

CreateGoToRActionEx

Erzeugt eine GoTo Remote Action unter Verwendung einer Named Destination as Ziel.

 
 

CreateNamedDest

Erzeugt eine Named Destination (benanntes Ziel).

 
 

CreateSigFieldAP

Erzeugt eine benutzerdefinierte Ansicht für ein Signaturfeld.

 
 

EnumDocFonts

Listet alle verwendete Schriften einer PDF Datei auf.

 
 

EnumHostFontsEx

Listet alle verfügbare Schriften auf, inkl. wichtiger Eigenschaften.

 
 

FileAttachAnnot

Fügt eine Dateianhang Anmerkung ein.

 
 

GetDocInfoCount

Gibt die Anzahl gesetzter Dokumentinfo Einträge zurück.

 
 

GetDocInfoEx

Gibt einen Dokumentinfo Eintrag zurück.

 
 

GetEmbeddedFile

Extrahiert eine eingebettete Datei.

 
 

GetEmbeddedFileCount

Gibt die Anzahl eingebetteter Dateien zurück.

 
 

GetFieldGroupType

Gibt den Typ des Basisfelds einer Feldgruppe zurück.

 
 

GetFieldHighlightMode

Gibt den Highlight Modus (Aktivierungseffekt) eines Feldes zurück.

 
 

GetFont

Füllt eine Struktur mit den wichtigsten Eigenschaften einer Schrift.

 
 

GetGStateFlags

Gibt die aktuellen Eigenschaften des Grafikstatus zurück.

 
 

GetInDocInfoCount

Gibt die Anzahl vorhandener Dokumentinfo Einträge einer geöffneten PDF Datei zurück.

 
 

GetInDocInfoEx

Gibt einen Dokumentinfo Eintrag aus einer geöffneten PDF Datei zurück.

 
 

GetInEncryptionFlags

Gibt die Flags zurück, mit der die aktuell geöffnete PDF Datei verschlüsselt wurde.

 
 

GetInIsCollection

Prüft ob es sich bei der aktuell geöffneten PDF Datei um eine PDF Collection handelt.

 
 

GetInIsEncrypted

Prüft ob die aktuell geöffnete PDF Datei verschlüsselt ist.

 
 

GetJavaScriptName

Gibt den Namen eines JavaScripts zurück.

 
 

GetMatrix

Gibt die aktuelle Transformationsmatrix zurück.

 
 

GetSpaceWidth

Liefert die Leerzeichenbreite oder einen Default Wert.

 
 

GetTextWidthEx

Gibt die Breite eines Textes einer bestimmten Länge zurück.

 
 

GetTrapped

Gibt den Überfüllungsstatus zurück.

 
 

ImportCatalogObjects

Importiert globale Objekte wie Lesezeichen, JavaScripte usw.

 
 

ImportDocInfo

Import die Dokumentinfo Einträge aus der aktuell geöffneten PDF Datei.

 
 

InitExtGState

Initialisiert einen erweiterten Grafikstatus mit Default Werten.

 
 

LoadFont

Lädt eine Schrift von einem Dateipuffer.

 
 

OpenOutputFile

Öffnet die Ausgabedatei in der die PDF Datei gespeichert werden soll.

 
 

PageLink2

Erzeugt einen Seitenlink anhand einer Named Destination als Ziel.

 
 

ParseContent

Parst den Inhalt einer PDF Seite inkl. Templates und Patterns.

 
 

PlaceSigFieldValidateIcon

Positioniert das Icon für den Validierungsstatus in einem Signaturfeld.

 
 

SetAnnotSubject

Setzt einen benutzerdefinierten Betreff in einer Anmerkung.

 
 

SetColDefFile

Setzt die eingebettete PDF Datei, die im Viewer standardmäßig geöffnet werden soll.

 
 

SetColSortField

Setzt das Feld anhand dessen die PDF Collection im Viewer sortiert werden soll.

 
 

SetDocInfoEx

Erzeugt einen Dokumentinfo Eintrag. Unterstützt auch benutzerdefinierte Schlüssel.

 
 

SetExtGState

Aktiviert einen erweiterten Grafikstatus.

 
 

SetFieldBBox

Ändert die Bounding Box eines Formularfeldes.

 
 

SetFieldFontSize

Ändert die Schriftgröße eines Formularfeldes.

 
 

SetFieldHighlightMode

Setzt den Highlight Modus eines Formularfeldes (Button, Checkbox, Signaturfeld).

 
 

SetFillColorSpace

Setzt den Farbraum für Füllfarben.

 
 

SetFontEx

Versucht eine PDF Schrift zu laden. Suche nach Family- und Postscriptname.

 
 

SetGStateFlags

Setzt spezielle Optionen, wie der Grafikstatus und Koordinaten behandelt werden sollen.

 
 

SetListFont

Setzt eine Schrift, die zur Ausgabe eines Listenzeichens verwendet werden soll.

 
 

SetOrientationEx

Ändert die Orientierung einer Seite inkl. Koordinatensystem und Seiteneigenschaften.

 
 

SetStrokeColorSpace

Setzt den Farbraum für Strichfarben.

 
 

SetTrapped

Setzt den Überfüllungsstatus.

 
 

TranslateString

Konvertiert einen PDF Binärstring nach Unicode.

 
 

WriteTextEx

Gibt einen Text einer bestimmter Länge aus.

 
 

WriteTextMatrixEx

Gibt einen Text einer bestimmter Länge aus.

 
 

Version 2.0.16.197

 

 
 

Bugfix

Beschreibung

 
 

CloseFileEx()

In der Version 2.0.12.192 wurden Contentstreams mit einer ungültigen Objektnummer verschlüsselt. Die resultierende PDF Datei war daher unbrauchbar.

 
 

EMF-Import

BeginPath() setzte einen zuvor als Pfad gezeichneten Text nicht zurück. Der Text wurde daher erneut mit dem nächsten Pfad ausgegeben (nur über FillPath, StrokePath etc.).

Jeweils 200 MoveTo / LineTo Rekords werden ab sofort zu Blöcken zusammengefasst. Das führt zu deutlich effizienteren Dateien und die Ausgabegröße wird reduziert.

 
 

ImportPDFFile()

Aufgrund von Änderung in der Funktion ImportPage(), in der Version 2.0.12.192, konnten PDF-Seiten mit nicht normalisierter Mediabox nicht mehr erfolgreich importiert werden, es sei denn das Flag ifImportAsPage wurde vorher gesetzt.

 
 

Neue Funktionen

Beschreibung

 
 

FindField()

Die Funktion sucht nach einem Feld anhand des Vollqualifizierten Namens und gibt im Erfolgsfall das Handle zurück.

 
 

ExchangePages()

Die Funktion tauscht zwei Seiten miteinander aus. Die Ziele von Pagelinks und GoTo Actions bleiben hierbei erhalten.

 
 

MovePage()

Diese Funktion verschiebt eine Seite an eine andere Position. Wenn die Zielseitennummer größer der Anzahl Seiten im Dokument ist, werden so viele Leerseiten erzeugt, bis die Zielseitennummer gültig ist. Die Ziele von Pagelinks und GoTo Actions bleiben hierbei erhalten.

 
 

SetLineDashPatternEx()

Die Funktion akzeptiert anstelle eines Strings ein Array vom Typ Double zum Setzen des Patterns.

 
 

Version 2.0.12.192

   
 

Bugfix

Beschreibung

 
 

EMF-Import

Unter bestimmten Voraussetzungen konnte die Textfarbe auf die Hintergrundfarbe geändert werden.

Aufgrund eines Fehlers in der Viewport Berechnung konnte ein Fehler in der Koordinatenberechnung auftreten, wenn ein anderer Mapping Mode als MM_ANISOTROPIC verwendet wurde.

Clipping Pfade wurden nicht korrekt verarbeitet.

In der Konvertierungsroutine von RGB nach CMYK war ab Version 2.0.12.180 ein Fehler enthalten. Ab dieser Version war außerdem ein Fehler in der Verarbeitung von PolyDraw Rekords enthalten.

Leerzeichen in Zeichenketten konnten unter bestimmten Bedingungen während der Konvertierung entfernt werden.

1 Bit Images in StretchBlt() Rekords wurden nicht transparent eingefügt.

 
 

ImportPage()

Importierte PDF-Seiten, die eine nicht normalisierte Mediabox verwenden, konnten nicht korrekt platziert werden.

 
 

ImportPDFFile()

Felder mit identischem Namen wurden fehlerhaft importiert. Unter bestimmten Voraussetzungen wurden außerdem Comboboxen als Listboxen erkannt und der Feldtyp daher entsprechend geändert.

 
 

PDF-Import

PDF-Dokumente, die Nachkommazahlen kleiner 1 ohne führende Null (bspw. .005, -.5) enthalten, konnten nicht bzw. nur fehlerhaft importiert werden.

Dokumente mit einer Dokument-ID, die nicht 16 Bytes lang ist, konnten nicht geöffnet werden. Die Dokument-ID ist ein 16 Byte langer MD5 Hash, er wird nur bei verschlüsselten Dokumenten benötigt.

 
 

Get/SetUseGlobalImportFiles()

Die Funktionsnamen enthielten beide einen Rechtschreibfehler.

 
 

WriteAngleText()

Die Eigenschaft Font Origin wurde innerhalb der Funktion auf orDownLeft geändert.

 
 

WriteFText()

Die Berechnung des Ausgaberechtecks war falsch, wenn Bottom-Up Koordinaten verwendet wurden. Unter bestimmten Voraussetzungen wurde außerdem ein überflüssiger Seitenumbruch ausgelöst.

 
 

Neue Funktionen

Beschreibung

 
 

AddRenderingIntent()

Die Funktion bettet ein ICC Profil in die PDF Datei ein. Ein ICC Profil wird für die Erzeugung von PDF/A und PDF/X kompatiblen Dateien benötigt.

 
 

ChangeLinkAnnot()

Mit der Funktion kann die URL oder der Dateipfad einer Weblink bzw. Filelink Annotation geändert werden.

 
 

FindLinkAnnot()

Die Funktion sucht eine Weblink oder Filelink Annotation anhand der URL bzw. Dateipfad.

 
 

GetAnnotLink()

Die Funktion gibt die URL bzw. den Dateipfad einer Weblink oder Filelink Annotation zurück.

 
 

GetInOrientation()

Die Funktion gibt die Ausrichtung einer bestimmten Seite der aktuell geöffneten Importdatei zurück.

 
 

ImportBookmarks()

Die Funktion ermöglicht das Importieren von Lesezeichen unabhängig vom Dokument.

 
 

InsertMetafileFromHandle()

Die Funktion konvertiert eine EMF Datei in native PDF Vektor Grafiken. Im Gegensatz zu InsertMefaile() akzeptiert die Funktion ein HENHMETAFILE Handle anstelle eines Dateipfades.

 
 

InsertMetafileFromHandleEx()

Wie InsertMetafileFromHandle(), unterstützt jedoch einen zusätzlichen Parameter um nur einen ausschnitt der EMF Datei konvertieren zu können.

 
 

SetUseSwapFileEx()

Im Gegensatz zur Funktion SetUseSwapFile() kann mit dieser Version das Ausgabeverzeichnis mit angegeben werden, in dem die Auslagerungsdatei erzeugt werden soll.

 
 

EMF-Konvertierung

Der EMF-Konverter wurde weiter verbessert und entfernt nun überflüssige EMF Rekords vollständig. Außerdem werden unnötige MoveTo/LineTo Rekords entfernt und Bezierkurven können häufig in einem kompakterem Format ausgegeben werden. Zusätzlich werden Einzelzeichen wieder zu kompletten Strings zusammengefasst, was zu erheblich kompakteren Ausgaben führt.

Sämtliche Koordinaten in EMF Dateien können nun vollständig auf die Ausgabegröße skaliert werden, was insbesondere bei Hochauflösenden Dateien von Vorteil ist, und bei Dateien, die 32 Bit Koordinaten verwenden. Ohne vollständige Skalierung können leicht Überläufe in PDF-Viewer auftreten und die Dateigröße kann aufgrund der erheblich kleineren Koordinaten deutlich reduziert werden.

 
 

PDF/A bzw. PDF/X Kompatibilität

Mit DynaPDF können ab sofort auch PDF/A und PDF/X kompatible PDF Dateien erzeugt werden.

 
 

JPEG2000 Kompression (Experimentell)

DynaPDF unterstützt ab sofort JPEG2000 Komprimierung. Sämtliche Eingangsformate können mit JPEG2000 komprimiert werden. Hinzugefügt wurden außerdem Dekoder für die Bildformate JP2, JPC und PGX. JPEG2000 Komprimierung benötigt im Vergleich zu anderen Verfahren leider sehr viel Rechenzeit und die Verwendung ist schwierig, da kein einheitlicher Kompressionsfaktor verwendet werden kann. Der Filter kann daher nur eingeschränkt verwendet werden und ist daher als Experimentell markiert.

 
 

Version 2.0.8.167

   
 

Bugfix

Beschreibung

 
 

ImportPDFFile()

Listboxen wurden unter bestimmten Voraussetzungen als Comboboxen erkannt. Der Feldtyp wurde dadurch bei der Importierung geändert.

 
 

SetFont()

Acrobat 3 zeigt keine eingebetteten TrueType Schriften an, wenn die Namenstabelle keine Namen für die Sprach-ID 0x0409 (English American) enthält. DynaPDF hat keine Namen für diese Sprach-ID generiert, daher konnten solche Schriften mit Acrobat 3 nicht angezeigt werden.

 
 

Version 2.0.8.166

   
 

Bugfix

Beschreibung

 
 

SetFont()

Die Cap Height wurde auf Null gesetzt, wenn der Typographic Ascender einer TrueType Schrift nicht gesetzt war. Adobe Acrobat Viewer sind von der Cap Height nicht abhängig.

 
 

Version 2.0.8.164

   
 

Bugfix

Beschreibung

 
 

Shadings

Shadings produzierten eine beschädigte PDF Datei aufgrund einer Änderung in einer Farbfunktion in Version 2.0.7.163.

 
 

ImportPDFFile()

Rendering Intents wurden mit einer falschen Objektnummer verschlüsselt.

 
 

Neue Funktionen

Beschreibung

 
 

ChangeJavaScriptName()

Die Funktion ändert den Namen eines globalen Javascripts.

 
 

GetInIsSigned()

Die Funktion prüft ob eine PDF Datei eine digitale Signatur enthält.

 
 

Version 2.0.7.163

   
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

DynaPDF gab keine Texte gedreht aus, wenn diese über den undokumentierten Rekordtyp EMRSMALLTEXTOUT ausgegeben wurden.

 
 

Neue Funktionen

Beschreibung

 
 

ReadImageResolution()

Diese Funktion gibt die Auflösung einer Bilddatei zurück. Beachten Sie, dass die Auflösung ein benutzerdefinierter Wert ist, der nicht in allen Bildformaten gespeichert werden kann. Wenn der Wert nicht gesetzt, oder vom Format nicht unterstützt wird, gibt die Funktion 0 für die horizontale und vertikale Auflösung zurück.

 
 

ReadImageResolutionEx()

Genauso wie ReadImageResolution(), diese Version akzeptiert einen Bildpuffer als Eingabe.

 
 

Version 2.0.6.162

   
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

Farben der Systempalette wurden nicht als solche erkannt und daher falsch übernommen.

Farben in EMF Dateien wurden aufgrund eines Fehlers nicht korrekt nach CMYK konvertiert, wenn der Farbraum DeviceCMYK eingestellt war.

 
 

Version 2.0.6.161

   
 

Bugfix

Beschreibung

 
 

Interaktive Formulare

Felder mit identischem Feldnamen wurden von DynaPDF nicht unterstützt. Sämtliche Funktionen zur Erzeugung von Formularfeldern wurden entsprechend erweitert.

Mit Adobes Designer erzeugte Formulare verwenden häufig Unicode Strings für Feldnamen. Die Funktionen GetField(), GetPageField() und GetFieldName() gaben jeweils NULL zurück, wenn der Feldname als Unicode String definiert wurde.

Mit Designer erzeugte Formulare konnten fehlerhaft importiert werden, wenn das Flag ifImportAsPage nicht gesetzt war, da Ressourcen falsch zugeordnet wurden.

Beim Flatten solcher Formulare konnte außerdem eine Exception auftreten.

 
 

EMF-Konvertierung

DynaPDF prüfte nicht auf eventuell nicht ausgegebene Pfade, bevor der Rekordtyp EMRSMALLTEXTOUT verarbeitet wurde. Dadurch konnte eine ungültige PDF-Datei erzeugt werden.

Bilder wurden falsch beschnitten und versetzt ausgegeben werden, wenn im Ausgangs-DC das Welt-Koordinatensystem verändert wurde.

Der Start- bzw. Endwinkel der Rekordtypen Arc, Pie und Chord wurde falsch berechnet, wenn der Winkel beinahe 90, 180, 270 oder 360 Grad war. DynaPDF muss den Winkel auf den nächsten Integer Wert runden, um korrekte Ergebnisse zu erzielen.

Die Handhabung von 1-Bit Bildern wurde geändert:

1-Bit Bilder werden ab sofort transparent ausgeben. Solche Bilder werden außerdem ggfls. nach RGB konvertiert, wenn die Hinter- und Vordergrundfarbe nicht auf Schwarz oder Weiß steht. Dadurch sind nun auch farbige Ausgaben von 1-Bit Bildern in allen Image-Rekords möglich. Bislang wurde die Hinter- und Vordergrundfarbe nur in BitBlt-Rekords berücksichtigt.

 
 

PDF-Ausgabe

Die von DynaPDF verwendeten Quicksort Algorithmen konnten einen Bufferoverrun verursachen. Es wurde zwar bislang nicht von Problemen berichtet, zumindest theoretisch konnte jedoch eine Exception auftreten, wenn eine Schrift gesucht oder die Datei geschlossen wurde.

 
 

IsColorPage()

Vektorgrafiken und Texte wurden nicht als farbig erkannt, wenn ein ICC basierter Farbraum verwendet wurde.

 
 

Version 2.0.6.160

   
 

Bugfix

Beschreibung

 
 

PDF-Import

Dokumente, die globale Seitenressourcen verwenden, konnten unter bestimmten Umständen nicht korrekt importiert werden. Dokumente dieser Art werden nicht von Adobe Produkten erzeugt.

 
 

IsEmptyPage(), IsColorPage()

Beide Funktionen ignorierten Bilder die mit DynaPDF auf einer Seite eingefügt wurden, sofern das Dokument nicht zwischenzeitlich gespeichert und neu eingelesen wurde. Diese Funktionen wurden zur Überprüfung von importierten Seiten entwickelt, dass sie auch Verwendung finden, bspw. nachdem eine EMF-Datei eingefügt wurde, wurde bei der Entwicklung nicht berücksichtigt.

 
 

Version 2.0.6.159

   
 

Bugfix

Beschreibung

 
 

TrueType Schriften

Aufgrund einer Änderung in der Einbettung von Schriftzeichen konnte das Leerzeichen durch ein beliebiges anderes Zeichen ersetzt werden.

 
 

Version 2.0.6.158

   
 

Bugfix

Beschreibung

 
 

PDF-Import

DynaPDF war nicht in der Lage PDF-Dateien zu entschlüsseln, wenn das Flag EncryptMetaData auf false gesetzt war (PDF 1.5 oder höher).

Adobes Designer verwendet Formular Schriften nun auch für normale PDF-Seiten. Das ist in früheren PDF Versionen nicht zulässig und führte daher zu Fehlern, wenn solche Dokumente importiert wurden.

Ein Speicherleck trat auf, wenn der optionale Mapping Name für Formular Felder gesetzt wurde.

Globale Javascripte wurden sortiert bevor sie in die Datei geschrieben wurden. Das konnte zu Fehlern führen, wenn eine bestimmte Ausführungsreihenfolge benötigt wurde, bspw. um Variablen zu initialisieren.

 
 

EMF-Konvertierung

Komplexe Clipping Regionen wurden nicht korrekt angewendet, wenn der Grafikstauts innerhalb der Region mehrfach gesichert und wiederhergestellt wurde.

Das Bitmap von Monobrushes wurde vertikal gespiegelt ausgegeben.

 
 

Textfelder

Textfelder wurden in einer falschen Schriftgröße gezeichnet, wenn die Schriftgröße "Auto" verwendet wurde, und der im Feld enthaltene Text breiter war als das Feld.

 
 

Neue Funktionen

Beschreibung

 
 

Get/SetCheckBoxDefState()

Die Eigenschaft ermöglicht die Erzeugung von Checkboxen mit einem anderen Default Status, als sichtbar, wenn das Formular geöffnet wird.

 
 

Version 2.0.5.157

   
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

Aufgrund von Änderungen im Fonthandling in Version 2.0.5.155 konnte eine Out of Memory Exception auftreten, wenn eine Schrift nicht gefunden werden konnte.

Nicht alle Eigenschaften von Brushes und Pens wurden mit dem EMF Rekord RestoreDC wiederhergestellt.

 
 

Version 2.0.5.156

   
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

Vor Ausführung des EMF-Rekords RestoreDC wurde nicht auf offene Pfade geprüft. Solche Pfade konnten daher in einer falschen Farbe und Linienstärke dargestellt werden.

IntersectClipRect Rekords deaktivierte eine zuvor gesetzte Clipping Region anstelle sie mit der neuen zu kombinieren.

 
 

Version 2.0.5.155

 

 
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

Die Schriftgröße von Stockfonts wurde nicht korrekt skaliert, wenn der Skalierungsfaktor des Viewports kleiner eins war.

Das optionale Clipping Rechteck in Textrekords wird nicht länger ignoriert. Für Stockfonts werden nun vorrangig TrueType Schriften verwendet, das führt zu wesentlich genaueren Ausgaben.

ExtCreateFont Rekords wurden bei nicht gesetztem Schriftnamen ignoriert, die Schriftparameter werden jedoch benötigt, wenn ein Text ohne zuvor gesetzte Schrift ausgegeben wird.

 
 

Version 2.0.5.154

   
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

Texte, die mit dem undokumentierten EMF-Rekord EMRSMALLTEXTOUT ausgegeben wurden, wurden nicht mit der aktuellen Transformationsmatrix und Viewport transformiert.

 
 

Version 2.0.5.152

   
 

Neue Funktionen

Beschreibung

 
 

Get/SetFieldMapName()

Optionaler Mapping Name der beim Export zu einem Webserver verwendet werden soll.

 
 

Bugfix

Beschreibung

 
 

EMF-Konvertierung

Während der Konvertierung von EMF-Dateien werden Bilder auf Duplikate geprüft, um das mehrfache Einbinden von identischen Bildern zu vermeiden. Die Duplikatprüfung basiert auf einen MD5 Hash, der von den Bilddaten erzeugt wird. Um die Verarbeitungsgeschwindigkeit zu erhöhen, wurde bislang nicht der gesamte Bildpuffer für die Erzeugung des Hashes verwendet, daher konnten in ungünstigen Fällen zwei unterschiedliche Bilder nicht als solche erkannt werden. Ab sofort wird der gesamte Bildpuffer für die Berechnung des Hashes verwendet.

Die Textausrichtung (Text Alignment) wurde bei der Widerherstellung des Grafikstatus nicht zurückgesetzt, daher konnten Texte falsch positioniert werden, wenn die gewünschte Ausrichtung nicht vor der Ausgabe neu gesetzt wurde.

Der EMF-Rekord StrokePath() schloss einen zuvor gezeichneten Pfad.

Das Kerningarray von Texten wird nun mit einem zulässigen Fehler von 10 Font Units ausgegeben, dadurch ergibt sich eine wesentlich kompaktere Stringausgabe, da sich geringfügige Abweichungen aufgrund der Integerkoordinaten in EMF-Dateien weniger negativ auswirken.

 
 

Version 2.0.4.146

 
 

Neue Funktionen

Beschreibung

 
 

CloseAndSignFile()

Funktion zum Signieren von PDF-Dateien.

 
 

CloseAndSignFileEx()

Funktion zum Signieren und Verschlüsseln von PDF-Dateien.

 
 

CreateSigField()

Funktion zum Erzeugen von leeren Signaturfeldern.

 
 

GetDynaPDFVersion()

Gibt die DynaPDF-Version als String zurück.

 
 

Get/SetFieldBorderWidth()

Rahmenstärke von Feldern.

 
 

Get/SetFieldOrientation()

Mit der Eigenschaft können Felder in 90 Grad Schritten gedreht werden.

 
 

HaveOpenDoc()

Überprüft, ob sich eine geöffnete PDF-Datei im Speicher befindet.

 
 

Bugfix

Beschreibung

 
 

Änderungen im Schrifthandling

Wenn in Acrobat 6/7 mit DynaPDF erzeugte PDF-Dateien als Postscriptdatei gespeichert werden sollten, wurden keine TrueType Subsets in die Postscriptdatei eingebettet, wenn die Option "TrueType Schriften nach Type1 konvertieren" nicht aktiviert war. Acrobat 6/7 betten TrueType Schriften nur in eine Postscriptdatei ein, wenn die Schriften in einer sehr speziellen Art und Weise aufbereitet werden.

 
 

EMF-Konvertierung

Während der Konvertierung konnte eine unbehandelte Ausnahme auftreten, wenn Bilder mit 256 Farben auf die eingestellte Auflösung herunterskaliert wurden.

Neue Koordinatenlogik:

Sämtliche Änderungen am Koordinatensystem werden ab sofort nicht mehr in der PDF-Datei gespeichert, sondern direkt umgerechnet. Durch die Umrechnung werden Probleme bei komplexen Transformationen am Koordinatensystem von vornherein vermieden, da der Grafikstatus in der PDF-Datei nicht mehr geändert werden muss, wenn das Koordinatensystem verändert wird. Bedingt durch die Umrechnung können nun auch Clipping Regionen keine Koordinatenprobleme mehr verursachen.

 
 

Alle Image-Funktionen

Die Farbtabelle von Bitmaps und DIBs wurde nicht korrekt von BGR nach RGB konvertiert, solche Bilder wurden daher teilweise in falschen Farben dargestellt. Dieser Fehler trat auch während der Konvertierung von EMF-Dateien auf.