Big Faceless PDF Library v2.28

Released: Mar 10, 2023

v2.28 での更新項目

機能

  • Added 'SignaturePolicy' class to manage changes to the digital signature validation policy used in the BFO PDF Library.
  • Added support for GlobalSign's new Qualified Signing Service, and added a 'setCustomAppearance()' method to set custom visuals for them.
  • 'FormSignature.verify()' can no longer deadlock while running simultaneously to 'OutputProfiler.apply()'. Progress in 'verify()' can now be controlled with the new 'FormSignature.cancelVerify()' and 'FormSignature.isVerifying()' methods.
  • The size of the signature is now calculated.
  • A list of preloaded OCSP responses and CRLs can now be supplied to avoid the need to download them from the network when they're required.
  • The float formatter has been rewritten to improve precision of least significant figures when writing numbers to a PDF, while still running 16x faster than DecimalFormat.
  • Repurposed the deprecated 'OutputProfile.Feature.PurgeResources' to allow it to remove unreferenced resources from within a page.
  • Added 'OutputProfiler.RemoveSignatures' strategy to remove, rather than flatten, signatures when the 'OutputProfiler.apply' method requires it.
  • Made some minor adjustments to the PDF/UA-1 profile to more closely follow the specification.
  • Made some minor tweaks to the API to make offline signing simpler.
  • Optimized 'getArlingtonModelIssues()' to improve speed by about 25%. Updated model to latest version.
  • The PKCS7SignatureHandler.SigningEngine now has two new methods to implement: 'getOCSPSResponses()' and 'getCRLs()'.

不具合の修正

  • SECURITY: XMP parsing did not disable external entity resolution, so a malicious PDF could requested XML data is downloaded when processed.
  • The previous build fixed the version numbers being set in the PDF, but this caused a few other tools that (unwisely) rely on version numbers to break. Now the version number can be forced by setting that feature to required, e.g. pdf.getBasicOutputProfile().setRequired(OutputProfile.Feature.PDFVersion14).
  • LayoutBox.setWordBreaksAllowed() wasn't working as described if the line had already overflowed the width of the box. Now fixed, but for anyone relying on the old behavior, setting the "org.faceless.pdf2.LayoutBoxBreaksOnOverflow" system property to not-null will revert this change.
  • Removed some cases where a PDF repair was done before it was needed, potentially invalidating a signature.
  • Fixed error (introduced two versions ago) where using a SpotColorSpace in a PDFCanvas *before* it's been added to a PDF threw an Exception.
  • Fixed error introduced in 2.27 where certain types of damaged form fields were recovered with the incorrect name.
  • Fixed a particular type of repair to damaged Name Trees that was deleting nodes instead of reordering them.
  • Previous release introduced an exception if a PDF contained an invalid extension, now fixed.
  • Viewer: If a signature is removed from the PDF, make sure this is reflected in the signature dialog. Also removed some unnecessarily noisy event handling designed to reset a signature state to unknown when the PDF has changed.
  • Viewer: Some fixes to FullScreen mode to keep the UI intact when the PDF in a DocumentPanel is removed or changed.
  • Viewer: When closing the PDF in single-window mode, the dirty flag wasn't being reset for the next PDF that was loaded.