News Archive

Version of SetaPDF Landed2024-04-08

Our first release of SetaPDF in 2024 is available!

This release comes with some new features and bugfixes which ensure the interoperability with special crafted PDF files and internal structures.

The SetaPDF-Merger component will handle named destinations of the catalogs Dests entry now, too. A serious bug in view to renaming of named destinations used in bookmark outlines was also fixed.

The DSS (Document Security Store) helper class of the SetaPDF-Signer got a new method that allows you to control whether the optional certificate field in the OCSP response should be kept or removed when an OCSP response is added to the DSS - we encountered some validation engines that require the OCSP signing certificate to be embedded in the optional certs field of the response itself instead of e.g. the Certs entry in the DSS.

This release also keeps the origin data types of numeric values for better interoperability with signature validation engines: Before this release e.g. the number 500.0 was rewritten as 500 which could be interpreted as an invalid/not allowed change by a validation engine. If a value is initiated by a decimal value it will also be written as such as of now.

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

switch product


Release date: 2024-04-08
SetaPDF-Core Component
  • Added Catalog::getDests() method and related helper class.
  • Added public $metadata property to all PDF types.
  • Check for a reader instance in SetaPDF_Core_Parser_Pdf to avoid fatal errors if the parser is used after its related document instance is finished.
  • Added null-byte as a valid separator/white-space in offset table of object streams.
  • Encrypt non-document-level metadata if security handler is configured to not encrypt metadata.
  • Added support for destination arrays with numeric page parameter.
  • Handle unsuccessful decryption of AES encrypted strings.
  • Execute write-callbacks in PDF types in the context of the writing document instance instead of the origin.
  • Fixed parsing of JPEG files with DRI marker.
  • Fixed Annotations::remove() method: Ignore document instance origin when comparing indirect references in Annots array with indirect object of the annotation.
  • Keep float/real notation when writing absolute numeric value.
  • Code style, doc-block optimizations and cleanup.
  • Added several methods to the SetaPDF_Core_Parser_CrossReferenceTable_ CrossReferenceTableInterface.
  • Added ensureType() method to SetaPDF_Core_Type_ObjectStream class.
  • Do not unfilter object streams twice but only once.
  • Optimized recognition of unencrypted metadata in stream object.
  • Added support for named destinations during creation of Link annotations.
  • Optimized Destination::findByName() method to use new Dests helper class.
  • Optimized OutlinesItem class in view to mandatory indirect reference in constructor.
  • Use indirect references (if available) for destinations in OutlinesItem class instead of using the raw destination array throughout.
  • Optimized handling of faulty PDF files.
  • Optimized creation of link annotations (use existing indirect references if possible).