News Archive

SetaPDF Components Released in Version 2.382021-09-09

Good bye summer, welcome SetaPDF 2.38 - a new release with tweaks, a feature and bugfixes of all our SetaPDF components.

ATTENTION! This release comes with a bugfix in the SetaPDF-Signer component which may have an impact on your implementation in very rare cases:

If you are doing document level timestamps (by calling $signer->timestamp()) without explicitly reserving enough space for the signature (by calling $signer->setSignatureContentLength()) the timestamp server may be contacted more than once. We fixed this by disabling the automatic restart of the signature/timestamp process and updated the default size of the reserved space to 15000 bytes. All timestamp servers responses in our tests were less than 15000 bytes. So this fix had no impact on any of our tests and should not have any on your implementation. But as of now a document level timestamp signature will throw an exception if the timestamp server response is larger than the reserved space. So there could be a chance that this exception is thrown. After updating to the latest version, please simply do a simple test document level timestamp signature. If an exception is thrown, you have unfortunately triggered an edge case. In that case just adjust the reserved space to the amount reported in the exception message (add some bytes) with the $signer->setSignatureContentLength() method. For sure you're welcome to contact us at if you need assistance with this.

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

switch product


Release date: 2021-09-09

Rev. 1631 to 1649

SetaPDF-Core Component
  • Append "\n" in incremental update only if there were changes.
  • Remove invalid characters in $filename in SetaPDF_Core_Writer_Http::encodeFilenameForHttpHeader().
  • Cast $memoryLimit in SetaPDF_Core_Writer_TempStream to integer before it is appended to the stream uri.
  • Fixed SetaPDF_Core_Parser_CorruptedCrossReferenceTable::getDefinedObjectIds(). The method didn't returned the first found id.