HexaPDF v0.27.0 Release Notes
Release Date: 2022-11-18 // almost 2 years ago-
➕ Added
- 👌 Support for timestamp signatures through the [HexaPDF::Document::Signatures::TimestampHandler]
- [HexaPDF::Document::Destinations#resolve] for resolving destination values
- [HexaPDF::Document::Destinations::Destination#value] to return the destination array
- 👌 Support for verifying document timestamp signatures
- 0️⃣ [HexaPDF::Document::Signatures::DefaultHandler#signature_size] to support setting custom signature sizes
- 0️⃣ [HexaPDF::Document::Signatures::DefaultHandler#external_signing] to support signing via custom mechanisms
- [HexaPDF::Document::Signatures::embed_signature] to enable asynchronous external signing
🔄 Changed
- 💥 Breaking change: The crop box is now used instead of the media box in most cases to be in line with the specification
- 0️⃣ [HexaPDF::Document::Signatures::DefaultHandler] to allow setting the used signature method
- 💥 Breaking change: [HexaPDF::Document::Signatures::DefaultHandler#sign] needs to accept the IO object and the byte range instead of just the data
- 💥 Breaking change: Enhanced support for outline items with new methods
#level
and#destination_page
as well as changes to#add
and#each_item
- 💥 Breaking change: Removed
#filter_name
and#sub_filter_name
from [HexaPDF::Document::Signatures::DefaultHandler] - 0️⃣
HexaPDF::Type::Resources#perform_validation
to not add a default procedure set since this feature is deprecated
🛠 Fixed
- [HexaPDF::Document::Destinations::Destination::new] to also accept a hash
- [HexaPDF::Type::Catalog] auto-conversion of /Outlines to correct class
- [HexaPDF::Type::AcroForm::Form#flatten] to return the unflattened form fields instead of the widgets
- [HexaPDF::Writer#write_incremental] to set the /Version in the catalog dictionary when necessary
- [HexaPDF::Importer#import] to always return an imported object with the same class as the argument
- [HexaPDF::Type::OutlineItem] to always be an indirect object
- 📜
HexaPDF::Tokenizer#parse_number
to handle references correctly in all cases - [HexaPDF::Type::Page#rotate] to correctly flatten all page boxes
- [HexaPDF::Document::Signatures#add] to raise an error if the reserved space for the signature is not enough
HexaPDF::Type::AcroForm::Form#perform_validation
to fix broken /Parent entries and to remove invalid objects from the field hierarchyHexaPDF::Type::OutlineItem#perform_validation
bug where a missing /Count key was deemed invalid- [HexaPDF::Revisions::from_io] to use the correct /Prev offset when revisions have been merged
- Handling of indirect objects with invalid values for more situations
Previous changes from v0.26.2
-
➕ Added
- 👌 Support for setting custom properties on [HexaPDF::Layout::Box] and [HexaPDF::Layout::TextFragment]
🔄 Changed
- 💅 [HexaPDF::Layout::Style::LinkLayer] to use the 'link' custom box property if no target is set
🛠 Fixed
- 💅 [HexaPDF::Layout::Style::Layers] to allow named layers without options
- [HexaPDF::Revision#each_modified_object] to not yield signature objects
- [HexaPDF::Revision#each_modified_object] to force comparison of direct objects
- [HexaPDF::Type::ObjectStream] to work for encrypted documents again