| |
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. |
|