HexaPDF v0.24.0 Release Notes
Release Date: 2022-08-01 // almost 2 years ago-
โ Added
- [HexaPDF::Layout::ListBox] for rendering ordered and unordered lists
- [HexaPDF::Layout::ColumnBox] for rendering content inside columns
- [HexaPDF::Layout::BoxFitter] for placing boxes into multiple frames
- ๐ New configuration option 'debug' for enabling debug output
- ๐ [HexaPDF::Document::Pages#move] for moving pages around the same document
- [HexaPDF::Composer#box] for drawing arbitrary, registered boxes
- [HexaPDF::Layout::Box#split_box?] for determining whether a box is a split box, i.e. the continuation of another box
- [HexaPDF::Document::Layout::ChildrenCollector] to provide an easy method for defining children boxes of a container box
๐ Changed
- ๐ฅ Breaking change: Refactored [HexaPDF::Layout::Frame] and associated data structures so that the complete result of fitting a box is returned
- ๐ [HexaPDF::Layout::Frame] to use a better algorithm for trimming the shape
- [HexaPDF::Layout::Frame::new] to allow setting the initial shape
- ๐ฅ Breaking change: Removed contour line from [HexaPDF::Layout::Frame]
- ๐ฅ Breaking change: Changed positional arguments of [HexaPDF::Layout::TextBox::new] and [HexaPDF::Layout::ImageBox::new] to keyword arguments for a consistent box initialization interface
- 0๏ธโฃ [HexaPDF::Layout::Box#split] to provide a default implementation that is useful for most subclasses
- Layout box implementations to provide a
#supports_position_flow?
method that indicates whether the box supports flowing its content around other content. hexapdf info --check
to only check the current version of each object- [HexaPDF::Writer] to make sure the producer information is written when writing the file incrementally
๐ Fixed
- [HexaPDF::Layout::TextLayouter] to freeze the new items when a text fragment needs to be split
- [HexaPDF::Layout::TextLayouter] to avoid the possible splitting of a text fragment if there would not be enough height left anyway
- [HexaPDF::Layout::WidthFromPolygon] to work correctly in case of very small floating point errors
- HexaPDF::Layout::TextFragment#inspect to work in case of interspersed numbers
- [HexaPDF::Layout::TextBox#split] to work for position :flow when box is wider than the initial available width
- [HexaPDF::Layout::Frame#fit] to create minimally sized mask rectangles
- [HexaPDF::Content::GraphicObject::Geom2D] to close the path when drawing polygons
- [HexaPDF::Layout::WidthFromPolygon] to work for all counterclockwise polygons
- ๐ [HexaPDF::Type::PageTreeNode#move_page] to work in case the parent node of the moved node doesn't change
- ๐ [HexaPDF::Type::PageTreeNode#move_page] to use the correct target position when the moved node is before the target position
- [HexaPDF::Document::Signatures#add] to work in case the signature object is the last object written
- CLI command
hexapdf inspect
to show correct byte range of the last revision - [HexaPDF::Writer#write_incremental] to only use a cross-reference stream if a
revision directly used one and not through an
/XRefStm
entry - ๐ [HexaPDF::Encryption::FastARC4] to use RubyARC4 as fallback if OpenSSL has RC4 disabled
- [HexaPDF::Font::Encoding::GlyphList] to use binary reading to avoid problems on Windows
- [HexaPDF::Document::Signatures#add] to use binary writing to avoid problems on Windows