News Archive

SetaPDF-Encryptor replaced by SetaPDF-Core2015-09-14

Finally we implemented the last puzzle from our version 1 branch of SetaPDF to version 2: All our SetaPDF components are shipped with support for public-key security by default now. Because the Core component was shipped with standard security as of its first release it covers now the full feature-set of the SetaPDF-Encryptor API which is obsolete as of now!


This implementation is not just writing encrypted PDF documents with the use of public-key cryptography but it is also possible to authenticate, read and modify (if this is allowed by the document author) these documents now. Read all details about the handling and usage of security handlers in SetaPDF here.

License owners of the SetaPDF-Encryptor API are welcome to send an email to to initiate a license transfer to the Core component.

This release additionally includes the implementation of the latest security handler revision for AES 256 bit which comes with Acrobat X (defined in PDF 2.0 / 1.7 Adobe Extension Level 8). It replaces the previous revision because of a weakness in the password checking algorithm.

The deprecated factory class was renamed to SetaPDF_Core_SecHandler_Standard_Aes256R5 (to label revision 5) while the current revision is available by the old class name: SetaPDF_Core_SecHandler_Standard_Aes256

Release Notes and Downloads

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

switch product


Release date: 2018-01-29

Rev. 1123 to 1196

SetaPDF-Core Component
  • 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.
  • 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.
  • 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.
  • 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.