We just released new versions of all SetaPDF components.
Beside various tweaks and bug fixes here are some points to mention:
This release added support for handling PDF files which includes invalid data at the beginning of the file through the SetaPDF-Core component. Such files will normally invalidate all byte offset positions and all previous versions of SetaPDF were not able to handle this situation.
The SetaPDF-Extractor component will ignore invisible glyphs above visible glyphs now - in previous versions such constructs created a word break.
The SetaPDF-Signer component received several new demos which show the implementation of external signatures. We also added a demo for the Lacuna Web PKI plugin, which allows you to sign PDF documents in the browser.
Check the release notes of the components below.
Log in to download the latest version of the related packages!
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-Extractor Component
Feature
Implemented handling of invisible glyphs above visible glyphs. They are ignored now and will not trigger a word break in both Word and ExactPlain strategies.
Added setCleanStreamCallback() and getCleanStreamCallback() in the abstract strategy class.
Added SetaPDF_Extractor_ContentStreamCleaner class and implemented it as a default callback in all strategies. It allows you to clean up a content stream before it is parsed and will bring a performance boost for documents with e.g. very much vector operations.
Bugfix
Pass $_ignoreSpaceCharacter property in SetaPDF_Extractor_Strategy_ExactPlain to sub-instance.
Tweak
Optimized code in sorting functions.
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-FormFiller Component
Tweak
Fixed flattening or deletion of form fields, which refer to pages without an annotations array (very uncommon and invalid structure).
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-FormFiller Component
Tweak
Fixed flattening or deletion of form fields, which refer to pages without an annotations array (very uncommon and invalid structure).
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-Merger Component
Bugfix
Translate standard constants (Description, File Name) to Acrobat specific values in setSort().
Return an empty array in SetaPDF_Merger_Collection_Folder::_getFiles() if the embedded files name tree is missing.
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-Signer Component
Bugfix
Added support for documents without a file identifier in an asynchronous signatur workflow.
Tweak
Optimized SetaPDF_Signer_Signature_Module_Cms::getParsedCertificate() for usage in PHP 5.4.
Added fix for a possible warning in SetaPDF_Signer_Signature_Module_Cms::getParsedCertificate() if null bytes were passed in the $certificate parameter.
Ensure that the signature content length is a multiple of two.
Demo
Added several demos showing how to create the signature value outside of a signature module (by an external implementation).
Tweaks in validation POC: Allow signatures with more than one signee but use only the first one.
Optimized validation demo in view to several signatures and revisions.
Added demo which works with the Lacuna Web PKI (sign a PDF in the browser).
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
Use following minimal composer.json file to install a package through
Composer.
]
Information
SetaPDF-Core Component
Feature
Added setTabOrder() and getTabOrder() in SetaPDF_Core_Document_Page_Annotations class.
Added method to normalize line breaks: SetaPDF_Core_Text::normalizeLineBreaks().
Added SetaPDF_Core_Document::getSaveMethod() and renamed $update parameter in save() method to $saveMethod (meaning is the same as before).
Added support for PDF documents with invalid data before their PDF file header.
Bugfix
Fixed a bug which occurs if AES encryption is used while the Length value of a stream is an indirect object which is already written because of the SetaPDF_Core_Document::SAVE_METHOD_REWRITE_ALL save method.
Prevent "String offset cast occured" notice in abstract reader class.
Fixed SetaPDF_Core_Document_Destination::findByName() when name was not found.
Tweak
Normalizes line breaks in SetaPDF_Core_Text_Block class.
Check for null bytes in file names before passing them to PHP functions to prevent warnings or notices.
Added support for faulty objects with a generation number higher than zero in object streams.
Allow date strings without "D:" prefix.
Demo
Updated get image sizes demo to handle rotated pages correctly.
This website makes use of cookies to enhance browsing experience and provide additional functionality.
For more details please see our
Data Privacy Statement
(German).