See also INFO/Changes-ver_2 for changes released for PDF::API2, and 
incorporated into PDF::Builder.
See also INFO/Changes_2019 for earlier version 3 release logs.

3.019     2020-07-27   

    lib/PDF/Builder/Content/Text.pm  Per [CTS 31], expand documentation of
      textlabel() call to emphasize that it is a standalone call, and doesn't
      play nicely with other text-output calls (such as not leaving a current
      position for the next write). It is intended for one-off labels, etc.

    lib/PDF/Builder/Content.pm, examples/HarfBuzz.pl, 
      examples/resources/HarfBuzz_example.pdf
     Support TTB (top to bottom) and BTT (bottom to top) vertical text in 
      textHS(), now that HarfBuzz::Shaper supports these modes. Requires 
      HarfBuzz::Shaper 0.23 or higher for TTB and BTT support, 0.21 for just 
      LTR and RTL support. The "example" PDF is provided in case you don't
      yet have HarfBuzz::Shaper installed, and want to see what it does. TTB is
      recommended for both normally RTL (bidirectional) and LTR languages. 
      Vertical writing is most often used with East Asian languages.

    .perl-version, Makefile.PL, README
     New minimum Perl version 5.20, which is already 6 years old, so we don't
      waste a lot of time chasing down bugs due to ancient Perl versions.
      PDF::Builder will likely work with older Perl versions, but your installer
      (e.g., cpan or cpanm) might refuse to install it.

    examples/042_links, examples/README, examples/examples_output, 
      tools/3_examples.pl, lib/PDF/Builder/Annotation.pm, MANIFEST
     Improved documentation of annotation-based links: PDF links and targets.

    lib/PDF/Builder/Content.pm, lib/PDF/Builder/Resource/XObject/Image/PNM.pm
     image() and form_image() calls default x,y to 0,0, so can call without
      lower left corner x,y. PNM processing [RT 132844] fix routine forgetting 
      where it is in the PNM file and failing to read part of it. Note that
      132844 is still open, as PNM handling has not yet been thoroughly checked.

    lib/PDF/Builder/Resource/XObject/Image/PNG-PNG_IPL.pm ref PR #25 for 
      PDF::API2. Some have reported that apparently there can be some cases 
      where the deletion of some streams may cause errors in the vec() calls. 
      This may be dependent on the Perl version, use of nonstandard flags 
      (such as -e), or other unusual usage.

    lib/PDF/Builder/Resource/Font/CoreFont/courier-courierbold-courieroblique-
      courierboldoblique-helvetica-helveticabold-helveticaoblique-
      helveticaboldoblique-timesroman-timesbold-timesitalic-timesbolditalic-
      symbol-zapfdingbats.pm, t/text.t
     In 3.018, the Core Font metrics (in particular, the 'wx' character widths) 
      were changed to use the values in the TTF files actually used (at least, 
      on Windows systems). Per [CTS 27] et al., I received complaints about 
      3.018 not using the exact Adobe font metrics for Core Fonts as before. I 
      have gone back to using the canonical Adobe metrics, even though (for 
      core fonts) this is likely to result in a small mismatch between the 
      indicated glyph width and the actual glyph displayed. In most cases it's 
      just one glyph grid unit wider (e.g., 667 instead of 666), which should 
      have no visible effect in any real document. However, there were a 
      handful of (rather esoteric) glyphs where the difference was 
      considerable. I compared the claimed widths for both Adobe metrics and 
      the TTF metrics, and picked one or the other, or even devised a new 
      width. These are documented in the .pm files under 'wx' (widths).

      Note that these are only the base 14 core fonts. The 15 Windows fonts 
      were not changed, as there is no Adobe AFM standard for them.

    INFO/CONVERSION, MANIFEST, README add conversion info for going from
      PDF::API2 to PDF::Builder.

    INFO/RoadMap minor updates

3.018     2020-04-24 

    lib/PDF/Builder/Content.pm-Page.pm
     [RT 132403] clarify documentation on the two different rotate() methods.

    lib/PDF/Builder/Content/Hyphenate_basic.pm, lib/PDF/Builder/Content.pm-
      Docs.pm, lib/PDF/Builder/Resource/BaseFont.pm, examples/HarfBuzz.pl, 
      examples/resources/HarfBuzz_example.pdf, examples/examples.output, 
      examples/README, tools/3_examples.pl, INFO/old/examples.bat, 
      Makefile.PL, README, MANIFEST
     Implement support for use of HarfBuzz::Shaper (to shape chunks of text).
      [RT 113700] This is an optional installation (manually done). 
      examples/HarfBuzz.pl will not run if you do not have HarfBuzz::Shaper 
      installed.  HarfBuzz_example.pdf is provided in examples/resources/ in 
      case you can't (yet) run HarfBuzz.pl. It demonstrates the use of 
      HarfBuzz::Shaper for a variety of Western (ligatures and kerning), 
      Middle Eastern (script and RTL), and South and Southeast Asian scripts.

    lib/PDF/Builder/Content.pm  Add 'none' option to text underline and
      strikethrough options. This was added to permit the option (underline or
      strikethrough) to be given in the code, but allow a 'none' value in 
      those cases where drawing an underline or strikethrough is not desired.
      This is still the default.

    examples/021_synfonts, examples/examples.output, examples/README
     The synthetic font example only showed for regular BankGothic font.
      Added bold, bold-italic, and italic cases. Note that there is something
      a bit odd about Bank Gothic -- it looks like it may only have regular
      weight (no bold) and the italic is questionable.

    tools/TTFdump.pl, MANIFEST, lib/PDF/Builder/Resource/Font/CoreFont.pm,
      lib/PDF/Builder/Resource/BaseFont.pm, examples/022_truefonts,
      lib/PDF/Builder/Resource/Font/CoreFont/courier*.pm-
      helvetica*.pm-times*.pm-georgia*.pm-trebuchet*.pm-verdana*.pm
     Add full set of glyph widths to core font metrics files [RT 57248].
      This is intended to allow correct rendering of non-Latin-1 single
      byte fonts, by expanding the width listing beyond Latin-1. A utility
      is provided to read a TTF/OTF font and return glyph lists in a format
      that can be dropped into a [typeface].pm file. Only glyph widths table
      was changed (no other metrics). Arial was used for Helvetica metrics,
      BankGothic could not be found (not sure what's being substituted for
      it), and various symbology fonts were not changed. Courier "missing
      width" updated to reflect the character used to indicate a missing glyph.

    INFO/RoadMap  Update some items. Mention other packages PDF::Table,
      Text::Layout, and HarfBuzz::Shaper that may be useful.

    lib/PDF/Builder/Resource/CIDFont.pm  For TTF (ttfont) fix improper 
      ToUnicode cmap so that a PDF may be searched (was broken in 3.016).

    lib/PDF/Builder/Content.pm  Add example of using add() function to
      cancel Chrome browser scaling and Y-axis flip before new content is
      added to an existing PDF.

    lib/PDF/Builder/Content.pm, lib/PDF/Builder/Content/Text.pm
      Remind users not to use charspace() when working with a connected (script)
      font such as Arabic, Devanagari, cursive handwriting, etc. Add -nocs
      option to text line fill (justified) routines to not use any charspace()
      values when expanding or shrinking text content to fit.

    lib/PDF/Builder/Basic/PDF/File.pm. The earlier fix for corrupted xref table
      only ran under diagnostics. Now only the warning message is under the
      diagnostics flag (-diags), and the fixup attempt is always run.

    INFO/Changes_2019, Changes, MANIFEST, lib/PDF/Builder.pm, README,
     Makefile.PL, INFO/KNOWN_INCOMP
      3.017 build/release, 2020 copyright, archive 2019 changes.
      
(see INFO/Changes_2019 for earlier changes)
(see INFO/Changes-ver_2 for changes to PDF::API2 up through 2.033)
