Changes for version 3.010 - 2018-08-20

  • .gitignore, Changes, docs/buildDoc.pl, lib/PDF/Builder/Content.pm, lib/PDF/Builder/Resource/XObject/Image/PNG.com fix some minor glitches discovered in final testing
  • lib/PDF/Builder/Basic/PDF/Array.pm-Bool.pm-Dict.pm, lib/PDF/Builder/Content.pm, lib/PDF/Builder/Resource/ColorSpace/DeviceN.pm, lib/PDF/Builder/Resource/XObject/Image/PNG.pm fix some minor POD errors
  • Changes_2017, Changes-ver_2, DEPRECATED, KNOWN_INCOMP, LICENSE, PATENTS, README, SUPPORT move to new INFO/ directory, as things were starting to get a little crowded in the root directory. Changes and MANIFEST are used by the system and can not be moved. MANIFEST updated to reflect new structure.
  • Changes, Changes_2017, MANIFEST split up Change logs by year, to make them easier to handle.
  • docs/, docs/buildDoc.pl, MANIFEST provide a tool and place to build the HTML pages from PODs in the PDF::Builder module sources. The .html files are NOT shipped with either the Perl build or on GitHub.
  • lib/PDF/Builder/Resource/XObject/Image/PNG.pm [ref RT 124349] code cleanup while looking at issue of why PNG RGBA processing is so incredibly slow. Suspect that the heavy use of the Perl vec() call may have something to do with it. To be continued...
  • lib/PDF/Builder/Content.pm, examples/Content.pl, examples/Bspline.pl, t/content.t, MANIFEST, examples.bat [ref CTS 8] add "bspline" method to draw a smoothly continuous curve (using blended cubic Bezier curves) through all the given points. In addition, the first and/or last points may be specified as visible or invisible straight line or curved segments in order to constrain the spline's behavior at the endpoints.
  • lib/PDF/Builder/Content.pm, examples/Content.pl, t/content.t, DEPRECATED [ref CTS 8] change "spline" method name to "qbspline", and deprecate "spline". This is to reflect that this method is actually a piecewise (non-continuous) series of quadratic Bezier curves, and not a true spline.
  • lib/PDF/Builder.pm, lib/PDF/Builder/Docs.pm, MANIFEST Add POD commentary on input and output PDF version supported. Move POD function details out of Builder.pm to a lower level "Docs" routine, in order to reduce the POD clutter.
  • .perl-version, dist.ini.old, .travis.yml.HOLD, Makefile.PL, lib/PDF/Builder.pm, lib/PDF/Builder/UniWrap.pm, MANIFEST change minimum Perl release level from 5.8.6 to Perl 5.16.0, per PDF::API2. The intent is to "support major Perl versions released in the past six years, plus one major release before that one. This should provide backward compatibility for the life of most LTS server distributions, while eliminating the need to troubleshoot warnings and bugs that only show up in increasingly-ancient versions of Perl." For this release, it means that the minimum supported Perl is 5.16 (first released 2012-05-20... see https://www.cpan.org/src/ "First release in each branch of Perl" for dates, NOT "Latest releases in each branch of Perl"!). The next version bump (to 5.18) should be after 2019-05-18.
  • lib/PDF/Builder/Resource/CIDFont/TrueType/FontFile.pm use confess (Carp.pm) rather than die, per PDF::API2.
  • examples/*, examples.bat moved output PDFs for several examples from the current directory to the examples directory, in the same style as the rest of the example outputs. Note that contrib.bat still outputs in the current directory.
  • contrib/text2pdf.pl, examples/020_corefonts--021_psfonts--021_synfonts-- 022_truefonts--022_truefonts_diacrits_utf8--023_cjkfonts--026_unifont2-- ShowFont.pl, examples/Windows/Win32.pm, lib/PDF/Builder.pm, lib/PDF/Builder/Annotation.pm--Content.pm--Lite.pm--Page.pm, lib/PDF/Builder/Basic/PDF/Page.pm--Pages.pm, lib/PDF/Builder/Resource/CIDFont/TrueType/FontFile.pm, lib/PDF/Builder/Resource/XObject/Image/TIFF_GT.pm, t/author-critic.t-- author-pod-syntax.t--font-synfont.t--font-ttf.t--font-type1.t-- rt120397.t--rt120450.t minor code styling changes to make perlcritic (level 5) happy. Some changes from PDF::API2 for level 4/5.
  • t/*, contrib/pdf-debug.pl--text2pdf.pl, examples/012_pages--021_psfonts-- 030_colorspecs--BarCode.pl--Content.pl--ContentText.pl--ShowFont.pl, lib/PDF/Builder/Annotation.pm--Content.pm--Lite.pm--Matrix.pm--Outline.pm-- Page.pm--Resource.pm--UniWrap.pm--Util.pm, lib/PDF/Builder/Content/Text.pm, lib/PDF/Builder/Basic/PDF/Array.pm--Dict.pm--File.pm--Filter.pm-- Literal.pm--Null.pm--Objind.pm--Pages.pm--String.pm, lib/PDF/Builder/Basic/PDF/Filter/FlateDecode.pm--ASCII85Decode.pm, lib/PDF/Builder/Resource/CIDFont.pm--ColorSpace.pm--ExtGState.pm-- Glyphs.pm, lib/PDF/Builder/Resource/CIDFont/CJKFont.pm--TrueType.pm, lib/PDF/Builder/Resource/CIDFont/TrueType/FontFile.pm, lib/PDF/Builder/Resource/Font/CoreFont.pm, lib/PDF/Builder/Resource/XObject/Form/BarCode.pm, lib/PDF/Builder/Resource/XObject/Image/GIF.pm minor code styling changes to make perlcritic (level 4) happy, including adding explicit "return" on all routines where missing, and not using variables $a and $b ("magic" according to perlcritic). Some changes suggested by PDF::API2 for this. There are many other level 4 errors yet to be gotten rid of: "Code before warnings" and "Warnings disabled at" due to use of "no warnings", "Close filehandles as soon as possible" due to too many lines between "open" and "close" calls, "Always unpack @_ first" (perlcritic doesn't like much about using the @_ array), "Subroutine name is a homonym for a builtin function" (e.g., our own "open" in contrast to CORE::open), "Symbols are exported by default" (doesn't like @EXPORT_OK usage). Most other perlcritic level 4 complaints were permanently fixed, but a few, such as "grep" and "map" formats, have been suppressed with "no critic" statements. Those might be revisited later.
  • pc.bat add batch file to run perlcritic
  • lib/PDF/Builder/Page.pm a few minor code styling changes, per PDF::API2. Most of the PDF::API2 changes were already in PDF::Builder, and some I declined because the style was not consistent.
  • examples.bat, examples/024_bdffonts, examples/examples.output some minor improvements to bitmapped (BDF) display output. Bitmap font support is still _very_ buggy! Does anyone actually _use_ bitmapped fonts?
  • lib/PDF/Builder.pm stringify() make sure return value has at least empty string for content. Several cases of -unicodemap check for true, not 1. After PDF::API2 changes for perlcritic.
  • lib/PDF/Builder/Content.pm outobjdeep() check -docompress is true, not 1. bogen() explicitly default move, larger, reverse to "false" (0). isvirtual(), ' apiistext' check for true, not 1. After PDF::API2 changes for perlcritic.
  • lib/PDF/Builder/Basic/PDF/File.pm add support for cross-reference streams (PDF 1.5) using 64-bit field widths, per PDF::API2 changes.
  • .travis.yml.HOLD, MANIFEST name restore (from .tgravis.yml). May attempt at some point to make use of Travis for testing. Currently my system seems to not be supportive of Travis modules, and I don't have a Travis account. I vaguely recall the CPAN system trying to use .travis.yml in my first release, and requiring an immediate release update, so I'm not using the name .travis.yml for now.
  • (see Changes_2017 for earlier changes) (see Changes-ver_2 for changes to PDF::API2 up through 2.031)

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. 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.