Raku Land

PDF::Font::Loader

0.5.8 2021-07-21T14:08:58+12:00 - Fix reading and writing of CMap codespace ranges for conformance with https://adobe-type-tools.github.io/font-tech-notes/pdfs/5014.CIDFont_Spec.pdf 0.5.7 2021-07-17T09:50:01+12:00 - Fix glyph lookup for an embedded font without a char-map. 0.5.6 2021-07-13T13:40:44+12:00 - Tweak loading of CID fonts from font dictionaries. - Documentation. README.md has been split into multiple *.md files and expanded in the docs/ directory. 0.5.5 2021-07-09T08:21:49+12:00 - Implement reading of CMaps with variable encoding and CID mappings #9 0.5.4 2021-07-05T09:20:00+12:00 - Add new sub-class PDF::Font::Loader::FontObj::CID - Fix ToUnicode CMaps for subsetted fonts - Allow subsetting of 'CFF' format OpenType fonts. HarfBuzz can handle these. 0.5.3 2021-06-30T11:20:17+12:00 Glyph maps #8 - Rename PDF::Font::Loader::Metrics -> PDF::Font::Loader::Glyph and shape() method to glyphs() - Handle unknown and un-mapped custom type-1 glyphs. Provide a glyphs(@cids) multi method to allow glyph extraction when there's no unicode mapping - Handle /CIDToGIDMap entries in font dictionaries 0.5.2 2021-06-26T09:58:42+12:00 - Added PDF::Font::Loader::Metrics class and $font-obj.shape method. 0.5.1 2021-06-24T13:52:53+12:00 Reusing a font within a PDF copies it #6 - Accept :$dict option re-use it, updating as needed (char-maps, widths, encoding differences. - Renamed PDF::Font::Loader::FreeType -> PDF::Font::Loader::FontObj - Make font width tables authoritative; stringwidth() method now checks the font's width array (/W or /Widths entry) before consulting font metrics. - Add glyph-width() rw method - Fix font-name() and is-embedded() methods 0.5.0 2021-06-19T10:10:30+12:00 More forgiving font handling #7 - Added support for TrueType Collections, which must be embedded. - Change font validation to accept any FreeType font, but check basic characteristic are present, and only restrict embedding to permitted font formats. - Warn and disable embedding, rather that aborting, if the font doesn't meet embedding criteria. - Changed default option for loading from PDF dictionary :!embed - Defer some error checks until font object construction; to make reading of PDF files even more forgiving. 0.4.4 2021-03-26T08:13:56+13:00 - Add PDF::Content::FontObj role to PDF::Font::Loader::FreeType 0.4.3 2021-01-21T14:09:43+13:00 - put cmap handling back into main freetype class; fix identity fonts. Release 0.4.2 - Adjust to PDF 0.4.5+ (renamed PDF::Writer -> PDF::IO::Writer) - Make CMAP encoding adaptive. An unknown character is mapped to win encoding. If that fails, unallocated cids are allocated sequentially as unknown characters are encountered. Release 0.4.1 - Add find-font(:$lang) option - Improved font descriptor encoding detection - Add experimental font subsetting via new HarfBuzz::Subset module; disabled by default (may change in a later release). Release 0.4.0 - Fixed handling of CFF fonts - Work-in-progress on font subsetting Release 0.3.1 - Improved FontDescriptor properties using TT_Sfnt, introduced with Font::FreeType v0.3.3. -- Improved: /ItalicAngle -- Added: /FontWeight /AvgWidth /Leading /MaxWidth /Style << /Panose ... >> Release 0.3.0 - Adjust to Font::FreeType 0.3.0 Release 0.2.9 - Rename sources *.pm -> *.rakumod - [PDF::Font::Loader::Enc::CMap][cmap-decode.t] -- Make some use of code-ranges in the CMAP file; this seems to be the correct way of distinguishing 1 or 2 byte encodings. -- Added some support for older CMap ligature idioms Release 0.2.8 - Update to Font::FreeType 0.2.1 Release 0.2.7 - [PDF::Font::Loader::Enc::CMap] -- Skip obviously invalid Unicode code-points. -- Added .encode() method. Initial support for /Identity-H and /Identity-V schemes -- Fixed identity-h encoding and decoding (16bit) Release 0.2.6 - [PDF::Font::Loader::FreeType] -- fix 'std' encoding -- handle float widths (convert to Int) Release 0.2.5 - Make compatible with Font::FreeType 0.2.2 Release 0.2.4 - [PDF::Font::Loader::Dict] Prefer toUnicode map over encoding in font dictionaries - Adjustments for Font::FreeType 0.1.7. Release 0.2.3 - added experimental loading from a PDF Font dictionary. load-font: :$dict Back ported from [PDF::To::Cairo::]FontLoader. Release 0.2.2 - replace positional with :family parameter in find-font(), load-font(). For consistency with PDF::Content.load-font method. Release 0.2.1 - renamed classes PDF::DAO -> PDF::COS in PDF v0.2.8 Release 0.2.0 - warn on Type1 Font being embedded, but not used Release 0.1.9 - fix scoping issues with Identity-H encoding - don't compress Type1 fonts. These are already encrypted. - simplify load-font multi-methods Release 0.1.8 support for PDF::To::Cairo font (WIP) Release 0.1.7 - fix kern method Release 0.1.6 - Add FontDescriptor dictionary required fields: ItalicAngle, StemV, CapHeight, XHeight Release 0.1.5 - Add :find-font, :load-font export subs - Add load-font :embed option Release 0.1.4 - Renamed dist PDF::Font -> PDF::Font::Loader Release 0.1.2 - Add .find-font, :weight, :width, :slant options Release 0.1.1 - Restrict type-1 font to Win encoding, freetype to Identity-H. - Added PDF::Font.find-font method Release 0.1.0 - Fixed font dictionary for type1 identity-h encoding - Changed method load-font: -- PDF::Font.load-font: :$file; # load from a font file -- PDF::Font.load-font: :$name; # load a font by name (experimental) Release 0.0.3 - Documentation changes Release 0.0.2 - Avoid loading TrueType Collections (type *.ttc). Not supported by Ghostscript 9.20 (and possibly other readers) Release 0.0.1 - Initial release