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!
Release date: 2020-06-17
Rev. 1425 to 1487
- 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.