Changelogs & Release Notes

Show changelog from version to

11 Bugfixes
6 Features
18 Tweaks
SetaPDF-FormFiller Component
Feature
  • Support to fill fields in static XFA documents without data binding.
  • Made the Xfa::getBridge() method public to e.g. allow direct access to template field nodes to gather additional information (such as labels).
Bugfix
  • Handle subformSet tag in name building logic for XFA forms.
  • Refactored data mapping in static XFA forms to handle name conflicts with none-form-field elements.
Tweak
  • Use font alias in DA entries to create missing font dictionaries (instead of falling back to Helvetica throughout).
  • Ensure a /BBox entry when flattening a form field which appearance is missing a /BBox entry.
SetaPDF-Core Component
Feature
  • Added TempStream writer class which uses buffering and a temporary stream internally. Both combined result in best CPU and memory usage.
  • Updated Http writer to extend the new TempStream writer class to reduce CPU and memory usage.
  • Added support for multiple quadrilaterals in setQuadPoints() method in all annoation classes supporting quad points.
  • Added SetaPDF_Core_Canvas_Draw::polygon() method.
Bugfix
  • Fixed fallback logic in Flate filter class.
  • Ignore invalid references in AcroForm data and handle them as they would not exist.
  • Allow DateTimeInterface instances in set*Date() methods in Annotation classes.
  • Handle missing encoding information in Type0 font instead of throwing a fatal error.
  • Handle empty Keyword array in XmpHelper class.
  • Resolve values of FontBBox array in several font classes (instead of accessing it directly).
  • Fixed access to undefined annotation appearance streams.
  • Added compatibility for PHP 8.
  • Handle invalid /Parent values in form field structures.
Tweak
  • Recreate FirstChar or LastChar entries in faulty Type1 and TrueType fonts (if possible).
  • Added support for DateTimeInterface in SetaPDF_Core_DataStructure_Date class.
  • Return color space instance in SetaPDF_Core_TransparencyGroup::getColorSpace() instead of raw value.
  • Fixed too many recursions in gif frame handling.
  • Micro optimization in pdf parser classes.
  • Ignore empty strings or streams in AES encrypted documents.
  • Moved SetaPDF_Core_Font::getFontBBox($recalculate=true) to own method (recalculateFontBBox).
  • Optimized performance of implementations of SetaPDF_Core_Font_FontInterface::getFontBBox().
  • Optimized performance of SetaPDF_Core_Geometry Rectangle and Vector.
  • Ensure that SetaPDF_Core_Document_Info::getDictionary(true) resolves to, or creates a dictionary if needed.
  • Speed optimization for parsing of JPEG files.
  • Optimized SetaPDF_Core_Document_Catalog::setOpenAction() to accept "null" as parameter which removes the OpenAction entry from the catalog dictionary.
  • Optimized handling of custom lists in SetaPDF_Core_Font_Glyph_List.
  • Optimized handling of the /Difference array in Simple and Type3 fonts.
  • Reduce extending page boundaries to their intersection with the media box.
  • Optimized SetaPDF_Core_Type_Dictionary_Helper::resolveAttribute() to ignore not found references.