News Archive

New Releases of all SetaPDF Components2020-06-18

We released all SetaPDF components in new minor versions!

Beside several bug fixes, small features and tweaks in the SetaPDF-Core component the main reason for this release is the new functionality in the SetaPDF-Signer component that allows you to gather and embed validation related information, such as OCSP responses, CRLs and certificates for LTV (Long-Term Validation).

What does Long-Term Validation mean? We try to explain it in some simple sentences: Each certificate has a fixed period of validity. Also the infrastructure which allows you to ask for revocation information of a certificate may have a limited life-time. Generally speaking: It may be not possible to validate a certificate in the future. The idea behind LTV is that all involved information which was used to validate a signature at a given time are collected and saved. This can be done by embedding them into the PDF itself. The resulting PDF document can be re-signed by a document level timestamp signature then to proof the status at the given date and time. If you want to know more details, please take a look at the current PAdES standard.

The documentation about these new features is available here.

The first demo using these new features is a demo for the GlobalSign Digital Signing Service that creates a document level timestamp signature.

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

switch product


Release date: 2020-06-17
SetaPDF-Core Component
  • Added Screen annotation class.
  • Added Caret annotation class.
  • Added SetaPDF_Core_Document_Catalog_MarkInfo and SetaPDF_Core_Document_Catalog_StructTreeRoot classes and getter methods to the catalog class.
  • Added SetaPDF_Core_Resource_PropertyList class.
  • Allow SetaPDF_Core_Type_*::toPdfString() to be called without a document instance as an argument (if possible) to be able to write PDF objects to a content stream.
  • Added getLang() and setLang() methods to catalog class.
  • Ignore undefined indirect references when an Annots array of a page is resolved.
  • Resolve indirect reference for /BBox entry in form XObject.
  • Ignore missing objects in Info class.
  • Handle deleted objects when parsing cross-references over several revisions.
  • Fixed setting of metadata in Catalog dictionary if the existing value is not a stream object.
  • Ensure correct object type of AcroForm entry.
  • Fixed justify alignment with line breaks in text.
  • Refactored all SetaPDF_Core_Type_Null instances to a single instance.
  • Optimized handling of faulty PDF documents (handle shifted object numbers in previous xref, resolve latest /Root in corrupted xref parser).
  • Added fallback to PDF date-time parsing to support non-PDF conforming declarations.
  • Use transliteration when decoding PDF strings to avoid an E_NOTICE if illegal characters are found.
  • Handle streams with invisible content (white signs) and a length of 0.
  • Throw correct exception if the /BBox entry of a form XObject is missing.
  • Check and ensure valid data-type in /Annots entry of a page.
  • Allow dictionary or resource to be used in SetaPDF_Core_Canvas_MarkedContent::begin() method.
  • Optimized string and number tree structure generation (arrangement).
  • Support authentication at encrypted documents without a file identifier.
  • Added support for handling tokens prefixed with several minus signs as numeric values.
  • Added more information in "get color-spaces" demo.
  • Fixed type-hint in setFont() method in TextField class.