DynaPDF Changelog

What's new in DynaPDF 2.5.4.549

Dec 21, 2010
  • Content Parser:
  • The functions GetPageText() and ParseContent() caused an access violation if a Type3 font contained no font descriptor.
  • EMF Converter:
  • Clipping path were ignored in certain cases. Version 5 bitmaps with embedded ICC profiles were incorrectly imported.
  • PDF Import:
  • An endless loop could occur when parsing a layer structure. Link annotations were not added to a layer. Check boxes with identical export value of a radio button were incorrectly imported if the flag RadioIsUnion was absent.
  • PNG Images:
  • 16 Bit PNG images were not correctly imported.
  • Text extraction:
  • The mapping of embedded CMaps will now be ignored if the CMap ordering is set to Identity. This change was required to process certain malformed PDF files with invalid mappings correctly. Adobe's Acrobat processes such files in the same way.
  • Delphi, Visual Basic, VB .Net, and C# Interfaces:
  • The return values of the functions GetInIsCollection(), GetInIsEncrypted(), GetInIsSigned(), GetInIsTrapped(), and GetInIsXFAForm() was true if no open PDF file was in memory.

New in DynaPDF 2.5.4.545 (Nov 17, 2010)

  • AttachFile(), AttachFileEx():
  • The key Filespec was written as FileSpec into the PDF file. Because neither Acrobat nor DynaPDF depend on this key this caused no error.
  • FlattenAnnot(), FlattenForm():
  • The function did not reset the graphics state of the page to the default values. In certain cases this could cause changes on the appearance of flattened annotations and form fields.
  • PDF Import:
  • The default icon of FileAttach, Stamp, and Text annotations was wrongly initialized. Because most PDF creators and Acrobat write the icon to the file this caused mostly no error.
  • The border width of FreeText annotations was initialized to zero if the border color was not set in the PDF file.
  • SetFont(), SetFontEx():
  • The space character width of the PDF Standard fonts Symbol and ZapfDingbats was initialized with zero. The calculated string width was wrong if the string contained a space character.
  • When searching for a font via Family name the search run did not continue if the font was found in a specific format and if no exact match of the requested font style could be found. A maybe available better or exact match was not selected in this case.

New in DynaPDF 2.5.4.543 (Oct 16, 2010)

  • Bugfix:
  • AddImageButton():
  • The image was not rotated depending on the page orientation.
  • CloseFile(), CloseFile(), CloseAndSignFile():
  • The functions did not raise an exception if the file could not be fully written to the output file, e.g. when the disk was full.
  • Create3DAnnot():
  • The annotation rectangle was overridden with a filled rectangle if the background color was set to another value than NO_COLOR (transparent, see SetFieldBackColor()).
  • The parameter Image is now optional.
  • FileLink(), PageLink(), PageLink2(), WebLink():
  • The functions didn't consider the default border style (see SetBorderStyle()) when creating the annotation.
  • ImportDocInfo():
  • The function did not raise an exception if an error occurred during the import.
  • PlaceTemplateEx():
  • The template was clipped with a rectangle of zero size if the the width and height was set to zero and if the original page, from which the template was created, contained a crop box.
  • New Functions:
  • AddObjectToLayer():
  • Connects objects like annotations and form fields with a layer.
  • BeginLayer():
  • Connects page contents like texts, images, and vector graphics with a layer.
  • CreateOCG():
  • Creates an Optional Content Group (OCG). An OCG represents a layer object.
  • pdfCreateOCMD():
  • Creates an Optional Content Membership Dictionary (OCMD). OCMDs are used to connect an object with multiple layers or OCGs.
  • CreateSetOCGStateAction():
  • A SetOCGState action can be used to dynamically change the visibility of layers.
  • EndLayer():
  • Closes the last open layer.

New in DynaPDF 2.5.3.540 (Oct 16, 2010)

  • Bugfix:
  • FindField():
  • The function could fail if a field was included in a nested group and if one of the parent group fields was also defined in the root of the AcroForm.
  • PDF Import:
  • Octal numbers in literal strings were not correctly parsed due to a change in the literal string parser in version 2.5.1.535.
  • Text output:
  • Text could be drawn with a border of a different color if a bold style was emulated.
  • New Features:
  • PDF Import:
  • DynaPDF imports now also annotations of an unknown type.

New in DynaPDF 2.5.2.538 (Oct 16, 2010)

  • Bugfix:
  • ComputeBBox():
  • Unused MoveTo operators were considered as point. The calculated bounding box could be too large due to this error.
  • C# Interface:
  • The function OpenTagW() was incorrectly named to pdfOpenTagW().
  • EMF Konvertierung:
  • The mapping mode MM_TWIPS was not correctly applied. Missing Intercharacter Spacing arrays in text records caused wrong character spacing.
  • GetPageFieldEx():
  • The function did not return a Boolean value. In addition, the structure TPDFFieldEx() was wrongly documented.
  • PDF Import:
  • An endless loop could occur if a stitching function contained invalid characters in the array of functions. References to no-existing encodings were considered as error and break the page import.
  • Visual Basic Interface:
  • A few ReDim calls allocated one more byte than necessary.

New in DynaPDF 2.5.2.536 (Oct 16, 2010)

  • Changes:
  • License Agreement:
  • The new section "Restrictions/Copyright Notices" has been removed since it is unnecessary.
  • AES Encryption:
  • The AES Encryption Library that was used in DynaPDF has been replaced with a native C++ implementation. The new code is smaller and a little bit faster.
  • New Functions:
  • GetFieldChoiceValue():
  • The function returns the choice values of combo and list boxes.

New in DynaPDF 2.5.1.535 (Oct 16, 2010)

  • Bugfix:
  • Color values:
  • Small values were incorrectly rounded. Single components could be saved one higher than specified, e.g. the RGB value 210, 87, 2 was saved as 210, 87, 3.
  • PDF Import:
  • A parsing error occurred if a CIDSystemInfo dictionary contained hex strings.
  • The last character width of simple fonts was not copied under certain circumstances if the file contained multiple versions of the same font object with overlapping glyph widths.
  • A stack overflow could occur if a damaged file contained binary data at the end of the file.

New in DynaPDF 2.5.1.533 (Oct 16, 2010)

  • Bugfix:
  • FlattenAnnots():
  • Under certain circumstances an annotation could be wrongly scaled.
  • FreeTextAnnot():
  • The function did not consider the border width.
  • OpenImportFile():
  • The function could hang in an endless loop if a name tree contained null objects.
  • PDF Import:
  • The flags of imported fields were set to printable by default. If the flags were not overridden during import the print settings were changed to wrong values.
  • Text Ausgabe:
  • DynaPDF did not produce warnings about missing glyphs if the font used a code page and if the text was output with the Unicode version of a string function.
  • WriteTextMatrix():
  • Rotated or scaled transformation matrices were sometimes ignored if other text was already output on the same y-coordinate.
  • New Functions:
  • AddRenderingIntentEx()
  • The function accepts a file :buffer as input.
  • GetInIsTrapped():
  • Returns the value of the Trapped key.
  • RenameSpotColor():
  • Renames a spot color in all Separation, DeviceN, and NChannel color spaces in which the color can be found.
  • SetAnnotBorderStyle():
  • Changes the border style of an annotation.
  • SetAnnotBorderWidth():
  • Changes the border width of an annotation.
  • SetAnnotColor():
  • Changes the border, background, or text color of an annotation.
  • SetAnnotFlagsEx():
  • Changes the flags of an annotation.
  • SetAnnotHighlightMode():
  • Changes the highlight mode of an annotation.
  • SetAnnotIcon():
  • Changes the icon of a text annotation.
  • SetAnnotOpenState():
  • Changes the open state of a markup annotation.

New in DynaPDF 2.5.0.530 (Oct 16, 2010)

  • Bugfix:
  • InsertImage(), InsertImageEx(), InsertImageFromBuffer():
  • The bitmap decoder did not consider the offset to the pixel data of the image header. Invalid pixel data were loaded if the image contained additional metadata.
  • DeletePage():
  • An access violation occurred if a previously imported page was deleted and if the same page was imported again, without closing the import file.
  • PDF Import:
  • It was not possible to load PDF files which contained invalid objects in the xref table. As defined in the PDF specs DynaPDF must ignore such objects.

New in DynaPDF 2.5.0.529 (Oct 16, 2010)

  • Bugfix:
  • EMF Konverter:
  • Texts of EMRSMALLTEXTOUT records were not scaled horizontally.
  • PDF Import:
  • DynaPDF failed to import a page if the page object contained a Boolean value.
  • The change regarding Optional Content Groups in version 2.5.0.527 could cause errors in certain cases.

New in DynaPDF 2.5.0.527 (Oct 16, 2010)

  • Bugfix:
  • PDF Import:
  • The order of Optional Content Groups (OCGs) could change during import. This could cause errors if Javascript functions accessed layers with the array index.
  • Invalid escape sequences in string objects were skipped while Acrobat copies the character behind the backslash.
  • 3D views without an XN key were not imported. It seems that Acrobat does not require this key to process the view successfully. DynaPDF adds the missing key now to the document if necessary.
  • SetDocInfoEx():
  • It was not possible to change existing user defined keys due to an error in a search algorithm. The already existing key was not found due to this error and DynaPDF added the same key then again with the new value. However, the deletion of user defined keys was possible.
  • AES and 128 Bit Acrobat 7 compatible RC4 Encryption
  • The full versions of Acrobat 7, 8, and 9 grand full access to the document if the default encryption filter for embedded files is set in the encryption dictionary! The owner password is then no longer required to change the security settings. Because DynaPDF has set the default filter for embedded files the encryption flags had no effect.
  • Due to this error it is also possible to modify existing PDF files to disable the security settings in Acrobat. This can be easily done by overriding the sequence /Length 128 or /Length 256 with "/EFF/StdCF " in the encryption dictionary. After this change Acrobat grants full access to the document while it should normally be opened with user rights.

New in DynaPDF 2.5.0.525 (Oct 16, 2010)

  • Bugfix:
  • GetLastTextPosX(), GetLastTextPosY():
  • The functions returned absolute coordinates which are not usable without further calculations.
  • InsertImage(), InsertImageEx():
  • Embedded ICC profiles in JPEG images were not considered if the image was inserted in pass-through mode, also if the flag gfUseImageColorSpace was set (see SetGStateFlags()). The function raised also an out of memory exception if the flag gfUseImageColorSpace was set and if SetSaveNewImageFormat() was set to false and if the image contained an ICC profile.
  • PDF Import:
  • The import failed if the media box of a page contained indirect references.
  • WriteAngleText():
  • The function did not set the end point of the text.
  • WriteFText():
  • The list symbol was not output and the \TR[] operator was not correctly processed.