Changes for version 3.013 - 2018-12-27

  • examples/022_truefonts-022_truefonts_diacrits_utf8-023_cjkfonts- 024_bdffonts-026_unifont2 Minor cleanup to end "dot" line. 3_examples.pl, 4_contrib.pl Minor cleanup to contrib tests, examples -step and -cont command line flag to stop after each test to allow tester to read expected results description (new) and look at PDF file(s) before going on to next test, or run them all in one fell swoop. Note that the failure in 025_unifonts is probably reading the data line right after __END__ (there is no __DATA__).
  • MANIFEST, 1_pc.pl, 2_t-tests.pl, 3_examples.pl, 4_contrib.pl, INFO/old/pc.bat, INFO/old/t-tests.bat, INFO/old/examples.bat, INFO/old/contrib.bat Convert the various test suites from Windows .bat files to Perl .pl files, so that they may be used on any system. Some configuration may need to be adjusted for Linux or Unix systems (such as directory separators and available font file names). The old .bat files have been moved to INFO/old, in case you'd rather use them (they would need to first either be moved back to the root, or their internal paths updated, and checked to see if they need updating). The Perl replacements are numbered in the suggested order for running them (only 3 and 4 are critical to use in that order).
  • examples/BarCode.pl Clean up by consolidating Helvetica font declaration into one place, rather than once per barcode Xobject (much smaller output PDF file). Note that barcodes still appear to have some problems with bars merging with each other.
  • examples/Content.pl Add a sample showing the use of multiple text and graphics objects to have some text under a graphic, and other over it, and change one image to show it rotated and clipped.
  • Makefile.PL Try a different format for bugtracker entry, to point to GitHub issues rather than the default RT ticket system.
  • t/00-all-usable.t Check for optional libraries and do auto-OK only if missing. If an optional library is present, do the normal "use" test.
  • README, MANIFEST Moved README back to the root to shut up Kwalitee's complaint about no README file.
  • lib/PDF/Builder.pm, lib/PDF/Builder/Annotation.pm-NamedDestination.pm- Outline.pm, lib/PDF/Builder/Basic/PDF/Utils.pm, lib/PDF/Builder/Resource/BaseFont.pm-CIDFont.pm, lib/PDF/Builder/Resource/CIDFont/CJKFont.pm, lib/PDF/Builder/Resource/Font/BdFont.pm, t/annotate.t
    • ref RT 33497, RT 117031
    • Consolidate PDFStr() and PDFUtf() calls (and associated is_utf() etc. checks) into new function PDFString(), which is given the string and usage code, and returns either PDFStr() or PDFUtf(), based on the usage and whether UTF-8 is permitted for that usage, and what the original string encoding was. This fixes RT 33497, and appears to fix RT 117031 too, as I have not seen any documentation that forbids UTF-8 characters in metadata (PDFString usage 'm'). If such turns up, I will update PDF::Builder::Basic::PDF::Utils to move metadata usage from UTF-8 permitted to disallowed.
      • Various Annotation titles and labels now permit UTF-8 text. Named Destinations currently permit UTF-8, as I have not seen any restrictions against this. Outline titles permit UTF-8. The annotate t-test was updated because PDFUtf() format <hex quartets> is no longer forced for annotations.
  • lib/PDF/Builder/Resource/XObject/Image/GIF.pm [ref RT 44877] Fixed library to process GIFs with 3 more types of extension blocks, and updated the POD. The new extension blocks are read, but ignored, so they no longer produce an error.
  • lib/PDF/Builder/Annotation.pm [ref RT 117942] Do some more cleanup of annotations. Unable to get same icon behavior between text and file_attachment, even though the same code is produced.
  • lib/PDF/Builder/Resource/Font/CoreFont/verdana*.pm change "gimel" width from 0 to 620 (but still doesn't show up, gets "invalid character" box marker) lib/PDF/Builder/Resource/Font/CoreFont/times*.pm change "macron" width from 333 to 520 (width was too narrow) lib/PDF/Builder/Resource/Font/CoreFont/helvetica*.pm change "macron" width from 333 to 580 (width was too narrow) lib/PDF/Builder/Resource/Glyphs.pm, uniglyph.txt change character 'dblgrave' (U+F6D6) to 'dblgravecmb' (U+030F) and add width to all CoreFont/*.pm. 020_corefonts, etc. now shows a double grave accent at x0E (where available in a typeface). lib/PDF/Builder/Resource/Glyphs.pm, uniglyph.txt change dotlessj from U+F6BE to U+0237; still not displaying at x1F with my font collection. lib/PDF/Builder/Resource/Font/CoreFont.pm, lib/PDF/examples/020_corefonts, lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm enable full bankgothic (not just regular). Unfortunately, this appears to be the older Bank Gothic (not "Pro"), which has only medium weight (bold, bolditalic are no different than regular and italic). Corrected widths on 'mu' (increased from missing/300 to 689) and 'germandbls' (reduced from 1327 to 847). bankgothic.pm is used by all four variants, so at this time there appears to be no need to create bold, italic, and bolditalic versions. (other fonts have different widths for some glyphs in different variants) lib/PDF/Builder/Resource/Font/CoreFont/bankgothic.pm remove 'euro', as the only entry in the font is named 'Euro'. add 'macron' with width. lib/PDF/examples/020_corefonts-ShowFont.pl, lib/PDF/Builder/Resource/Font/BaseFont.pm core fonts with no assigned width, show background of light red to flag them. Add method 'wxMissingByEnc()' to flag a missing core font width.
  • lib/PDF/Builder/Annotation.pm enable dash pattern in -border option. lib/PDF/Builder/NamedDestination.pm remove -border and -rect options from POD, as there seems to be no code to implement them. A link (with -rect and -border) to a Named Destination should be taken care of in the Annotation module.

Modules

Facilitates the creation and modification of PDF files
Add annotations to a PDF
Corresponds to a PDF array. Inherits from PDF::Builder::Basic::PDF::Objind
A special form of PDF::Builder::Basic::PDF::String which holds the strings true or false
PDF Dictionaries and Streams. Inherits from PDF::Builder::Basic::PDF::Objind
Holds the trailers and cross-reference tables for a PDF file
Abstract superclass for PDF stream filters
compress and uncompress stream filters for ASCII-85
compress and uncompress stream filters for ASCII-Hex
compress and uncompress stream filters for Flate
compress and uncompress stream filters for Lempel-Ziv-Welch
compress and uncompress stream filters for Run-Length
Literal PDF Object. Inherits from PDF::Builder::Basic::PDF::Objind
Inherits from PDF::Builder::Basic::PDF::String and stores PDF names (things beginning with /)
PDF Null type object. This is a subclass of PDF::Builder::Basic::PDF::Objind and cannot be subclassed.
Numbers in PDF. Inherits from PDF::Builder::Basic::PDF::String
PDF indirect object reference. Also acts as an abstract superclass for all elements in a PDF file.
Represents a PDF page, inherits from PDF::Builder::Basic::PDF::Pages
a PDF pages hierarchical element. Inherits from PDF::Builder::Basic::PDF::Dict
PDF String type objects and superclass for simple objects that are basically stringlike (Number, Name, etc.)
Utility functions for PDF library
Methods for adding graphics and text to a PDF
Simple hyphenation capability
additional specialized text-related formatting methods. Inherits from PDF::Builder::Content
additional documentation for Builder module
Lightweight PDF creation methods
matrix operations library
Add named destination shortcuts to a PDF
Manage PDF outlines (a.k.a. bookmarks)
further Outline handling. Inherits from PDF::Builder::Outline
Methods to interact with individual pages
Base class for PDF resources. Inherit from PDF::Builder::Basic::PDF::Dict
Base class for font resources
Base class for CID fonts
Base class for CJK fonts
additional code support for TT font files. Inherits from PDF::Builder::Basic::PDF::Dict
Base class for PDF color spaces
colorspace handling for Device CMYK. Inherits from PDF::Builder::Resource::ColorSpace
base colorspace support for indexed color models. Inherits from PDF::Builder::Resource::ColorSpace
colorspace support for Device RGB. Inherits from PDF::Builder::Resource::ColorSpace::Indexed
colorspace support for "Web Safe" Device RGB colors. Inherits from PDF::Builder::Resource::ColorSpace::Indexed
Support for color space separations
translate color names into RGB settings
Graphics state dictionary support
some common support routines for font files. Inherits from PDF::Builder::Resource::BaseFont
Module for using bitmapped Fonts.
Module for using the 14 PDF built-in Fonts.
font-specific information for Bank Gothic font
font-specific information for regular Courier font
font-specific information for bold weight Courier font
font-specific information for bold weight + slanted Courier font
font-specific information for slanted Courier font
font-specific information for regular Georgia font
font-specific information for bold weight Georgia font
font-specific information for bold weight + italic Georgia font
font-specific information for italic Georgia font
font-specific information for regular Helvetica font
font-specific information for bold weight Helvetica font
font-specific information for bold weight + slanted Helvetica font
font-specific information for slanted Helvetica font
font-specific information for the Symbol font
font-specific information for bold weight Times font
font-specific information for bold weight + italic Times font
font-specific information for italic Times font
font-specific information for regular (roman) Times font
font-specific information for regular Trebuchet font
font-specific information for bold-weight Trebuchet font
font-specific information for bold weight + italic Trebuchet font
font-specific information for italic Trebuchet font
font-specific information for regular Verdana font
font-specific information for bold weight Verdana font
font-specific information for bold weight + italic Verdana font
font-specific information for italic Verdana font
font-specific information for WebDings symbol font
font-specific information for WingDings symbol font
font-specific information for Zapf Dingbats symbol font
support routines for using PostScript fonts. Inherits from PDF::Builder::Resource::Font
Module for using synthetic Fonts.
preparsed uniglyph.txt file information
list of standard paper sizes and their dimensions
support stub for patterns. Inherits from PDF::Builder::Resource
support stub for shading patterns. Inherits from PDF::Builder::Resource
Unicode Font Support
Base class for external objects
Base class for external form objects
Base class for one-dimensional barcodes
specific information for CodaBar bar codes. Inherits from PDF::Builder::Resource::XObject::Form::BarCode
Code 128 and EAN-128 barcode support
specific information for 3-of-9 bar codes. Inherits from PDF::Builder::Resource::XObject::Form::BarCode
specific information for EAN-13 bar codes. Inherits from PDF::Builder::Resource::XObject::Form::BarCode
specific information for int 2-of-5 bar codes. Inherits from PDF::Builder::Resource::XObject::Form::BarCode
support routines for Forms. Inherits from PDF::Builder::Content, PDF::Builder::Content::Text, and PDF::Builder::Resource::XObject::Form
Base class for external raster image objects
support routines for Graphics Development image library. Inherits from PDF::Builder::Resource::XObject::Image
support routines for GIF image library. Inherits from PDF::Builder::Resource::XObject::Image
support routines for JPEG image library. Inherits from PDF::Builder::Resource::XObject::Image
support routines for PNG image library (using pure Perl code). Inherits from PDF::Builder::Resource::XObject::Image
support routines for PNG image library (using Image::PNG::Libpng). Inherits from PDF::Builder::Resource::XObject::Image
support routines for PNM (Portable aNy Map) image library. Inherits from PDF::Builder::Resource::XObject::Image
support routines for TIFF image library
support routines for TIFF image library (Graphics::TIFF enabled)
TIFF image support (Graphics::TIFF enabled)
support routines for finding line breakpoints with Unicode text
utility package for often-used methods across the package.