News Archive

New Versions2017-01-24

The first new release of all SetaPDF components in 2017 is done!

Beside bugfixes, new features and tweaks this release corrects an issue with our versioning system. We had updated the minor and maintenance version numbers ([major].[minor].[maintenance]) for each component individually in the past. Because the feature size of the SetaPDF-Core component, which is part of all other components, grew and offered more and more high level functions our customers started to use them beside other SetaPDF components. In the old system it may had happened that a feature or change in the SetaPDF-Core component was added while the version number of another component was only changed in its minor version. To prevent this in the future all changes in the SetaPDF-Core component will increase the version number of all other components, too.

Check the release notes of the components below.
Log in to download the latest version of the related packages!

switch product

Version 2.27.0.1196

Release date: 2018-01-29

Rev. 1123 to 1196

SetaPDF-Core Component
Feature
  • Implemented re-calculation of font bounding box for Type0 fonts with a TrueType font program.
  • Added SetaPDF_Core_Font_Type0_Subset class.
  • Added ToUnicode creation class.
  • Added SetaPDF_Core_Font_TrueType_Subset class.
Change
  • Increased default byte length from 1024 to 5500 bytes in which the component will search for the initial "startxref" keyword.
  • Introduced SetaPDF_Core_Font_FontInterface and updated all related type hints accordingly.
  • Removed getGlyphsWidthByCharCodes() method and internally used property from all font classes.
Bugfix
  • Ignore broken indirect object references when resolving terminal fields in Fields array of the AcroFom dictionary.
  • Fixed bug in TrueType "cmap" (segmented coverage/format 12) reading.
  • Fixed bug in TrueType "name" table reading.
  • Prevent warning if document metadata package is empty.
Tweak
  • Ensured encoding object type in simple font class.
  • Handle reading of direct objects without a valid PDF value (throw an exception).
  • Cache calculated font bounding boxes for TrueType and Type0 fonts.
  • Jump to a more logical byte offset if parsing of a cross-reference table fails.
  • Removed creation of name objects by string type from SetaPDF_Core_Type_AbstractType::writePdfString().
  • Optimized SetaPDF_Core_Encoding::utf16BeToUnicodePoint().
  • Ignore invalid range values in CMAP parser.
  • Forward document instance in SetaPDF_Core_Type_Dictionary::_handlePdfStringCallback() calls.
  • Optimized word (or better space) counting in text graphic state class.
  • Optimized exception messages in horizontal metrics table class of the TrueType parser.
  • Ignore hybrid cross-references if /XRefStm points to an invalid byte offset.
  • Optimized handling of corrupted documents.
  • String reader uses PHP streams internally now.
  • Refactored PNG file handling through PHP streams instead of strings to reduce memory usage.
  • Fixed incorrect return type hints in doc blocks.
  • Added support for reading of malformed XMP metadata packages.
  • Added "Accept-Ranges: none" header to both HTTP writer classes.