All Versions
70
Latest Version
Avg Release Cycle
17 days
Latest Release
517 days ago
Changelog History
Page 5
Changelog History
Page 5
-
v0.14.1 Changes
January 21, 2021๐ Changed
- Validation message when checking for allowed values to include the invalid object
- [HexaPDF::FontLoader::FromFile] to allow (re)using an existing font object
- [HexaPDF::Importer] internals to avoid problems with retained memory
๐ Fixed
- ๐ Parsing of invalid PDF files where whitespace is missing after the integer value of an indirect object
- [HexaPDF::Dictionary] so that adding new key-value pairs during validation is possible
-
v0.14.0 Changes
December 30, 2020โ Added
- ๐ Support for creating AcroForm multiline text fields and their appearances
- ๐ Support for creating AcroForm comb text fields and their appearances
- ๐ Support for creating AcroForm password fields and their appearances
- ๐ Support for creating AcroForm file select fields and their appearances
- ๐ Support for creating AcroForm list box appearances
- [HexaPDF::Type::AcroForm::ChoiceField#list_box_top_index] and its setter method
- โก๏ธ [HexaPDF::Type::AcroForm::ChoiceField#update_widgets] to create appearances if they don't exist
- Methods for caching data to [HexaPDF::Object]
- ๐ Support for splitting by page size to CLI command
hexapdf split
๐ Changed
- [HexaPDF::Utils::ObjectHash#oids] to be public instead of private
- ๐ Cross-reference table parsing to handle invalidly numbered main sections
- โก๏ธ [HexaPDF::Document#cache] and [HexaPDF::Object#cache] to allow updating values for existing keys
- Appearance creation methods of AcroForm objects to allow forcing the creation of new appearances
- [HexaPDF::Type::AcroForm::AppearanceGenerator#create_text_appearances] to re-use existing form objects
- AcroForm field creation methods to allow specifying often used field properties
๐ Fixed
- Missing usage of
:sort
flag for AcroForm choice fields - Setting the
/I
field for AcroForm list boxes with multiple selection - ๐ [HexaPDF::Layout::TextLayouter::SimpleLineWrapping] to remove glue items (whitespace) before a hard line break
- Infinite loop when reconstructing the cross-reference table
- ๐ [HexaPDF::Type::AcroForm::ChoiceField] to support export values for option items
- AcroForm text field appearance creation to only create a new appearance if the field's value has changed
- AcroForm choice field appearance creation to only create a new appearance if the involved dictionary fields' values have changed
- [HexaPDF::Type::AcroForm::ChoiceField#list_box_top_index=] to raise an error if no option items are set
- [HexaPDF::PDFArray#to_ary] to return an array with preprocessed values
- [HexaPDF::Type::Form#contents=] to clear cached values to avoid returning e.g. an invalid canvas object later
- โก๏ธ [HexaPDF::Type::AcroForm::ButtonField#update_widgets] to create appearances if they don't exist
-
v0.13.0 Changes
November 15, 2020โ Added
- Cross-reference table reconstruction for damaged PDFs, controllable via the new 'parser.try_xref_reconstruction' option
- Two new
hexapdf inspect
commands for showing page objects and page content streams by page number - Flag
--check
to the CLI commandhexapdf info
for checking a file for parse and validation errors - [HexaPDF::Type::AcroForm::Field#embedded_widget?] for checking if a widget is embedded in the field object
- [HexaPDF::Type::AcroForm::Field#delete_widget] for deleting a widget
- [HexaPDF::PDFArray#delete] for deleting an object from a PDF array
- [HexaPDF::Type::Page#ancestor_nodes] for retrieving all ancestor page tree nodes of a page
- ๐ [HexaPDF::Type::PageTreeNode#move_page] for moving a page to another index
๐ Changed
- ๐ฅ Breaking change: Overhauled document/object validation interfaces and internals to be more similar and to allow for reporting of multiple validation problems
- Validation of TrueType fonts to ignore missing fields if the font name suggests that the font is one of the standard 14 PDF fonts
- Option
-p
of CLI commandhexapdf image2pdf
to also allow lowercase page size names
๐ Fixed
- ๐ Reporting of cross-reference section entry parsing error
- 0๏ธโฃ PDF version used by default for dictionary fields
- ๐ Error in CLI command
hexapdf inspect
when parsing an invalid object number - Output of error messages in CLI command
hexapdf inspect
to go to$stderr
- ๐ Bug in [HexaPDF::Type::AcroForm::TextField] validation due to missing nil handling
-
v0.12.3 Changes
August 22, 2020๐ Changed
- ๐ Allow any object responding to
#to_sym
when setting a radio button value
๐ Fixed
- Error in the AcroForm appearance generator for text fields when the font is not found in the default resources
- ๐ Parsing of long numbers when reading a file from IO
- โ Usage of unsupported method for Ruby 2.4 so that all tests pass again
- ๐ Allow any object responding to
-
v0.12.2 Changes
August 17, 2020๐ Fixed
- Wrong origin for page canvases when bottom left corner of media box doesn't coincide with origin of coordinate system
- Wrong origin for Form XObject canvas when bottom left corner of bounding box doesn't coincide with origin of coordinate system
-
v0.12.1 Changes
August 16, 2020โ Added
- [HexaPDF::Font::Encoding::Base#code] for retrieving the code for a given glyph name
๐ Fixed
- [HexaPDF::Font::Type1Wrapper#encode] to correctly resolve the code for a glyph name
-
v0.12.0 Changes
August 12, 2020โ Added
- Convenience methods for accessing field flags for [HexaPDF::Type::AcroForm::Field]
- [HexaPDF::Type::AcroForm::TextField] and [HexaPDF::Type::AcroForm::VariableTextField] for basic text field support
- [HexaPDF::Type::AcroForm::ButtonField] for push button, radio button and check box support
- ๐ [HexaPDF::Type::AcroForm::ChoiceField] for combo box and list box support
- [HexaPDF::Type::AcroForm::AppearanceGenerator] as central class for generating appearance streams for form fields
- Various convenience methods for [HexaPDF::Type::AcroForm::Form]
- Various convenience methods for [HexaPDF::Type::AcroForm::Field]
- Various convenience methods for [HexaPDF::Type::Annotations::Widget]
- [HexaPDF::Type::Annotation::AppearanceDictionary]
- [HexaPDF::Document#acro_form] and [HexaPDF::Type::Catalog#acro_form] convenience methods
- CLI command
hexapdf form
for listing fields of interactive forms and filling them out - [HexaPDF::Rectangle] methods for setting the left, top, right, bottom, width and height
- Method #prenormalized_color to all color space implementations
- [HexaPDF::Type::Font#font_wrapper] for accessing an associated font wrapper instance
- [HexaPDF::Type::FontType1#font_wrapper] for providing a font wrapper for the standard PDF fonts
- [HexaPDF::Type::Annotation::Border] class
- [HexaPDF::Content::ColorSpace::device_color_from_specification] for easily getting a device color object
- [HexaPDF::Content::ColorSpace::prenormalized_device_color] for getting a device color object without normalizing values
- [HexaPDF::Type::Annotation#appearance] for returning the associated appearance dictionary
- [HexaPDF::Type::Annotation#appearance?] for checking whether an appearance for the annotation exists
- Configuration option 'acro_form.create_appearance_streams' for automatically creating appearance streams
- [HexaPDF::Type::Resources] methods
#pattern
andadd_pattern
๐ Changed
- Deletion of pages to delete them from the document as well
- ๐จ Refactored [HexaPDF::Font::Type1Wrapper] and [HexaPDF::Font::TrueTypeWrapper]
and renamed
#dict
to#pdf_object
- Fall back to the Type1 font's internal encoding when decoding a string
- All [HexaPDF::Content::ColorSpace] implementations to only normalize values when using the ::color method
- ๐ [HexaPDF::Content::Parser#parse] to also accept a block in place of a processor object
- HexaPDF::Type::AcroForm::Field#full_name to [HexaPDF::Type::AcroForm::Field#full_field_name]
- Moved
HexaPDF::Content::Canvas#color_space_for_components
to class method on [HexaPDF::Content::ColorSpace] - โ Added bit unsetter method to[HexaPDF::Utils::BitField]
- [HexaPDF::Type::AcroForm::Form#find_root_fields] and
#each_field
to take the field type into account when wrapping a field dictionary - Pages specification of CLI commands to allow counting from the end using the
new
r<N>
notation - [HexaPDF::Font::Type1Wrapper] to use the internal encoding of a font with a 'Special' character set instead of a custom encoding
- ๐ง Configuration 'filter.map' to use the pass-through filter on all unsupported filters
๐ Fixed
- Wrong normalization of color values when invoking a color operator
- Invalid type of
/DR
field of [HexaPDF::Type::AcroForm::Form] - Invalid ordering of types for the
/V
and/DV
fields of [HexaPDF::Type::AcroForm::Field] - [HexaPDF::Type::AcroForm::Field#terminal_field?] to work according to the spec
- ๐ Handling of empty files by throwing better error messages
- [HexaPDF::Type::Image#info] to correctly identify images with a soft mask as currently not supported for writing
- ๐ [HexaPDF::Revision#delete] to remove the connection between the object and the document
- Missing
#definition
method ofDeviceRGB
,DeviceCMYK
andDeviceGray
color spaces - ๐ Handling of 'Pattern' color spaces when parsing content streams
-
v0.11.9 Changes
June 15, 2020๐ Changed
- Encryption dictionaries to always be indirect objects
-
v0.11.8 Changes
June 11, 2020๐ Fixed
- Serialization of special
/
(zero-length name) object in dictionaries and arrays
- Serialization of special
-
v0.11.7 Changes
June 10, 2020๐ Fixed
- โก๏ธ Deletion of object streams in [HexaPDF::Task::Optimize] to avoid accessing then invalid object streams
- โก๏ธ [HexaPDF::Task::Optimize] to work correctly when deleting object streams and generating xref streams