News Archive

New Versions2015-08-20

Today we released new versions of all SetaPDF components.

The main changes were done in the Core component which affects all other components by default. To get an overview of the changes read the release notes below.

These releases were also tested with PHP 7.0.0beta3 and passed our test suite, which covers almost 6500 tests, without any problem but a huge performance boost!

Release Notes and Downloads

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

switch product

Version 2.15.0.744

Release date: 2015-08-20
SetaPDF-Core Component
Feature
  • Implemented new save method, which keeps object streams in a full rewrite.
  • Added SetaPDF_Core_Document_Action_SubmitForm::(get|set)CharSet() methods.
  • Added get(Bottom|Top)UserSpace() methods to SetaPDF_Core_Canvas_GraphicState_Text class to receive the specified bearing line value in user space.
  • Implemented several high level annotation classes: Highlight, Underline, Squiggly, StrikeOut, Ink, Polygon, PolyLine.
  • Optimized SetaPDF_Core_Document_Page_Annotation_TextMarkup::setQuadPoints() and implemented SetaPDF_Core_Document_Page_Annotation_TextMarkup::getQuadPoints() methods.
  • Optimized SetaPDF_Core_Document_Page_Annotation_Link::setQuadPoints() and implemented SetaPDF_Core_Document_Page_Annotation_Link::getQuadPoints() methods.
  • Added getOpacity() and setOpacity() methods to SetaPDF_Core_Document_Page_Annotation_Markup class.
  • Added getBorderEffect() to SetaPDF_Core_Document_Page_Annotation_(Square|Circle) class.
Change
  • Renamed parser for corrupted cross reference to SetaPDF_Core_Parser_CorruptedCrossReferenceTable.
  • Refactored resolving of objects in object streams. Removed $_ownerPdfDocument property from several PDF types and make it more generic by introducing an $_owner property.
Bugfix
  • Fixed handling of hybrid-reference files.
  • Fixed observing of dictionary of streams.
  • Fixed cloning of foreign objects in a specific document context.
  • Fixed SetaPDF_Core_Document_Catalog_Pages::getPageNumberByIndirectObject() to return the correct object number if the page was extracted from another document instance.
  • Fixed setting of individual boundary boxes in Page object. All set(BoxName|Boundary) methods have a new $checkBoundary parameter that allows you to disable logical checks.
Tweak
  • Optimized SetaPDF_Core_Encoding::toUtf16Be() method.
  • Optimized SetaPDF_Core_Font::getGlyphsWidthByCharCodes().
  • Optimized automatic resolving of most reliable encoding function (mbstring or iconv).
  • Optimized SetaPDF_Core_Text::getLines() method for better line-break handling.
  • Refactored SetaPDF_Core_Document_Destination to use class constants instead of string values for the fit-mode parameter.
  • Refactored annotation classes.
  • Force an integer cast in Ascii85 decode method due to a compatibility issue with PHP 7 (see https://bugs.php.net/bug.php?id=69906) on x86 systems.
  • Optimized cleanUp() method on Pages class.
Demo
  • Added demo that crops a PDF page into a specific area.
  • Added new demo for removing digital signatures from PDF documents.
  • Updated demo "CheckForDigitalSignatures.php" in view to specific ASN.1 structures.