Changes for version 3.016 - 2019-08-16

  • INFO/RoadMap, CONTRIBUTING, MANIFEST, README Add a road map describing where we'd like to take PDF::Builder.
  • examples/024_bdffonts-README-examples.output, lib/PDF/Builder.pm, lib/PDF/Builder/Resource/BaseFont.pm, lib/PDF/Builder/Resource/Font/BdFont.pm, tools/3_examples.pl, INFO/old/examples.bat BDF (bitmapped fonts) now working properly, provided you have a good .bdf file as your starting point. They're ugly enough not to be all that useful, but might be used to decorative effect in chapter titles and major headings (not suitable for body text!).
  • lib/PDF/Builder/Docs.pm, lib/PDF/Builder/Resource/CIDFont/TrueType.pm Improve documentation of ttfont's -nosubset and -noembed flags.
  • lib/PDF/Builder.pm, lib/PDF/Builder/Docs.pm, lib/PDF/Builder/Resource/Font/Postscript.pm [RT 130038] Improve documentation for putting an image on the page, pointing to other sources of information. There are undoubtedly many other "how to do" tasks that need upgraded documentation, and we will attend to them over time. In the meantime, be sure to check out the examples/ Perl programs for numerous examples of how to use calls, and even the t-tests in t/ might prove useful as examples.
  • examples/021_psfonts, lib/PDF/Builder/Docs.com, lib/PDF/Builder.com, lib/PDF/Builder/Resource/Font/SynFont.pm [RT 130040] Confirm that the "synfont" method to modify a font does not seem to work with "CJK" fonts (created by the "cjkfont" method), due to internal font file format differences. Also add "Ipsum Lorem" sample text to 021_psfonts output.
  • docs/buildDoc.pl, lib/PDF/Builder.pm, lib/PDF/Builder/Content.pm- Docs.pm-Page.pm Improvement to documentation generation utility to handle pod2html upgrade to specify URLs with targets (#name), and update some POD that refers to specific targets on a page. It's possible that if you have an earlier Perl level, this might not work properly.
  • lib/PDF/Builder/Resource/CIDFont/TrueType/FontFile.pm, lib/PDF/Builder/Docs.pm, examples/022_truefonts [RT 130041] OTF and TTF "CFF" files were getting the font file embedded in them (by ttfont method), even though there was no link to use that large stream, when -noembed=>1. This has been fixed. Also, the documentation (Docs.pm) has been upgraded to clarify when and how font file embedding is done (especially that it's NOT done for cjkfont). The TrueType example has had a flag added to specify embedding control.
  • lib/PDF/Builder/Resource/BaseFont.pm-CIDFont.pm-UniFont.pm [RT 130074] clarify remaining uses of is_utf8() call that it's utf8::is_utf8().
  • lib/PDF/Builder.pm, lib/PDF/Builder/Page.pm, lib/PDF/Builder/Docs.pm, INFO/DEPRECATED, INFO/KNOWN_INCOMP, MANIFEST, t/bbox.t, tools/2_t-tests.pl, INFO/old/t-tests.bat [RT 130039] add "get" capability to both global and page bounding box calls, obsoleting the get_* calls for the page. $pdf->mediabox() will return the global media box, $page->mediabox() will return the current page's media box, and so on for bleed, crop, trim, and art boxes.
  • lib/PDF/Builder.pm, lib/PDF/Builder/Basic/PDF/File.pm [GH 101] permit out-of-spec PDF structures that were formerly fatal errors. -diags flag to enable reporting of suspicious structures, otherwise silent. There are many PDFs "in the wild" that do not conform to Adobe PDF standards, yet many Readers are happy to accept them.
  • docs/buildDoc.pl output module (.pm or .pod) being processed, so user won't be worried about how long it's taking.
  • lib/PDF/Builder.pm, lib/PDF/Builder/Resource/UniFont.pm-BaseFont.pm, lib/PDF/Builder/Basic/PDF/Array.pm-Dict.pm-File.pm-Filter.pm-Literal.pm- Objind.pm-Page.pm-Pages.pm-String.pm-Utils.pm, lib/PDF/Builder/Basic/PDF/Filter/FlateDecode.pm, lib/PDF/Builder/Resource/CIDFont/CJKFont.pm-TrueType.pm, lib/PDF/Builder/Resource/CIDFont/TrueType/FontFile.pm, lib/PDF/Builder/Lite.pm-Page.pm-Resource.pm, t/author-critic.t--author-pod-syntax.t--rt126274.t (new), MANIFEST per PDF::API2 changes, code style cleanup (including some minor changes to outobjdeep(), such as removing %options), and some bug fixes not already in PDF::Builder. Also some Perl Critic cleanup and removal of unused routines.
  • contrib/pdf-deoptimize.pl--pdf-optimize.pl, lib/PDF/Builder.pm, lib/PDF/Builder/Basic/PDF/Array.pm-Dict.pm-Objind.pm-Page.pm-Pages.pm, lib/PDF/Builder/Util.pm, INFO/DEPRECATED per PDF::API2 changes, elementsof() changed to elements().
  • lib/PDF/Builder/Annotation.pm-Content.pm-Outline.pm-Page.pm-Resource.pm, lib/PDF/Builder/Resource/CIDFont.pm-ColorSpace.pm-ExtGState.pm, lib/PDF/Builder/Resource/XObject/Form/Hybrid.pm per PDF::API2 changes, outobjdeep() is no longer destructive (content is no longer removed). Some outobjdeep() calls removed, others simplified.
  • lib/PDF/Builder/Resource/CIDFonts/CMap/*.cmap finish work on [RT 128674] by updating .cmap files to latest. This is difficult because Adobe provides poor documentation, moved to GitHub a couple years back and did not provide good snapshots of previous releases (to see exactly what changed over time), and provides differing levels of up-to-dateness depending on when someone last updated on GitHub (including older supplements!). It's not clear exactly what Adobe version the existing (older) PDF::Builder .cmap files correspond to. In some cases, it appears that they were incomplete at the claimed supplement level. It's not possible to map the cid2code.txt files to PDF::Builder .cmap files in an automated manner because it's not clear which Unicode is to be used in the g2u array when multiple Unicode codepoints map to a given CID. There are some inconsistencies of what CIDs are defined, between the Adobe documentation, what's in the cid2code.txt files, and what's available in Unicode. Suggestions on how to automate cid2code.txt usage would be appreciated. Anyway, this is my best attempt, and corrections accepted!
  • tools/1_pc.pl, 2_t-tests.pl clean up minor bugs, improve diagnostics.

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 (not standard PDF core)
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 (not standard PDF core)
font-specific information for bold weight Georgia font (not standard PDF core)
font-specific information for bold weight + italic Georgia font (not standard PDF core)
font-specific information for italic Georgia font (not standard PDF core)
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 (not standard PDF core)
font-specific information for bold-weight Trebuchet font (not standard PDF core)
font-specific information for bold weight + italic Trebuchet font (not standard PDF core)
font-specific information for italic Trebuchet font (not standard PDF core)
font-specific information for regular Verdana font (not standard PDF core)
font-specific information for bold weight Verdana font (not standard PDF core)
font-specific information for bold weight + italic Verdana font (not standard PDF core)
font-specific information for italic Verdana font (not standard PDF core)
font-specific information for WebDings symbol font (not standard PDF core)
font-specific information for WingDings symbol font (not standard PDF core)
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.