HexaPDF v0.4.0 Release Notes
Release Date: 2017-03-19 // about 7 years ago-
โ Added
- [HexaPDF::Type::FontType0] and [HexaPDF::Type::CIDFont] for composite font support
- ๐ Complete support for CMaps for use with composite fonts; the interface for [HexaPDF::Font::CMap] changed to accomodate this
- CLI command
hexapdf batch
for batch execution of a single command for multiple input files - 0๏ธโฃ CLI option
--verbose
for more verbose output; also changed the default verbosity level to only display warnings and not informational messages - CLI option
--quiet
for suppressing additional and diagnostic output - ๐ CLI option
--strict
for enabling strict parsing and validation; also changed the default from strict to non-strict parsing/validation - โก๏ธ CLI optimization option
--optimize-fonts
for optimizing embedded fonts - Method
#word_spacing_applicable?
to font types - ๐ Support for marked-content points and sequences in [HexaPDF::Content::Canvas]
- ๐ Support for property lists in a page's resource dictionary
- ๐ Show file name and size in
hexapdf info
output - [HexaPDF::Type::Font#font_file] for getting the embedded font file
- โก๏ธ [HexaPDF::Font::TrueType::Optimizer] for optimizing TrueType fonts
- ๐ง Configuration option 'filter.flate_memory' for configuring memory use of the [HexaPDF::Filter::FlateDecode] filter
- Method [HexaPDF::Content::Canvas#show_glyphs_only] for faster glyph showing without text matrix calculations
- Methods for caching expensive computations of PDF objects ([HexaPDF::Document#cache] and others)
๐ Changed
- Enabled in-place processing of PDF files for all CLI commands
- โ Show warning instead of exiting when extracting images with
hexapdf images
and an image format is not supported - Handling of character code to Unicode mapping:
- [HexaPDF::Font::CMap#to_unicode], [HexaPDF::Font::Encoding::Base#unicode]
and [HexaPDF::Font::Encoding::GlyphList#name_to_unicode] return
nil
instead of an empty string - Font dictionaries use the new configuration option
'font.on_missing_unicode_mapping' in their
#to_utf8
method
- [HexaPDF::Font::CMap#to_unicode], [HexaPDF::Font::Encoding::Base#unicode]
and [HexaPDF::Font::Encoding::GlyphList#name_to_unicode] return
- ๐ง [HexaPDF::Configuration#constantize] to raise error if constant is not found
- ๐ Extracted TrueType font file building code into new module [HexaPDF::Font::TrueType::Builder]
- [HexaPDF::Filter::FlateDecode] filter to use pools of Zlib inflaters and deflaters to conserve memory
๐ Fixed
- ๐ Use of wrong glyph IDs for glyph width entries and unicode mapping for subset TrueType fonts
- Invalid document reference when importing wrapped direct objects with [HexaPDF::Importer]
- Invalid type of /DW key in CIDFont dictionary when embedding TrueType fonts
- Caching problem in [HexaPDF::Document::Fonts] which lead to multiple instances of the same font
- ๐ Bug in handling of word spacing with respect to offset calculations when showing or extracting text
- ๐ Incorrect handling of page rotation values in
hexapdf merge
- Missing handling of certain rotation values in
hexapdf modify
- Removal of unused pages in
hexapdf modify
- Handling of invalid page numbers in CLI commands
- ๐ Useless multiple extraction of the same image in
hexapdf images
- Type of /VP entry of [HexaPDF::Type::Page]
- ๐ Parsing of inline images that contain the end-of-image marker
- High memory usage due to not closing
Zlib::Stream
objects in [HexaPDF::Filter::FlateDecode]