Package Release Info


Update Info: Base Release
Available in Package Hub : 15 SP4





Change Logs

* Fri Sep 17 2021 Tina Müller <>
- updated to 2.042
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.042     2021-09-16
  - This release includes many changes to method names, options, and
    documentation aimed at improving approachability, but existing code should
    continue to work.  See the new Backward Compatibility section in the main
    PDF::API2 documentation for details about deprecation timelines and a
    suggested workflow for handling upgrades.  See the new Migration section
    for a consolidated list of deprecated methods/options and their
  - Renamed several methods in the PDF::API2 base class:
  - end -> close
  - open_scalar -> from_string
  - stringify -> to_string
  - pages -> page_count
  - importPageIntoForm -> embed_page
  - isEncrypted -> is_encrypted
  - xmpMetadata -> xml_metadata
  - outlines -> outline
  - Merged saveas into save.
  - Added individual accessors for PDF metadata (title, author, producer,
    etc.).  Replaced info and infoMetaAttributes with info_metadata for custom
  - Renamed the following methods in the PDF::API2::Page class:
  - gfx -> graphics
  - rotate -> rotation
  - Added $page->boundaries() and $pdf->default_page_boundaries() to replace
    the separate methods for the various page boundaries.  The supported
    arguments are slightly different; some edge cases have been removed and
    new options have been added.  See below and the PDF::API2::Page
    documentation for details.
  - Added $page->size() and $pdf->default_page_size() as a shortcut for
    setting the media box.
  - Both $page->size() and $page->boundaries() (and their $pdf default
    equivalents) now accept "WxH" page sizes in inches (e.g. 11x17 or 8.5x11).
    This does not apply to the deprecated versions of these methods.
  - Both $page->size() and $page->boundaries() (and their $pdf default
    equivalents) now accept a single number for page boundaries other than the
    media box, representing an amount in points to shrink the next larger box.
    This does not apply to the deprecated versions of these methods.
  - Replaced pageLabel with page_labels.  The option syntax is slightly
    different (pass options as a hash instead of a hashref; remove hyphens
    from option names).
  - Replaced image_jpeg, image_tiff, image_pnm, image_png, image_gif, and
    image_gd with $pdf->image.
  - Replaced the individual barcode methods with $pdf->barcode, which is
    fully documented and includes reasonable defaults based on the chosen
    barcode format.
  - Improved spacing between barcodes and labels when both bar_extend
    (formerly -lmzn) and font_size (formerly -fnsz) are set and the font size
    is larger than the bar extension.
  - Replaced corefont, ttfont, psfont, and bdfont with $pdf->font.  Unlike
    corefont, font requires the exact name of one of the standard fonts.
    Kerning is on by default (vs. off by default in the type-specific
  - Renamed synfont to synthetic_font.  Renamed and documented the options.
    The new hscale option (formerly -slant) now takes a percentage (100 = no
    change, vs. 1 = no change for -slant) to match the hscale method in
    Content.  The new "bold" option is in thousandths of a text unit,
    vs. hundredths for "-bold", so multiply the old value by 10 when
  - Replaced the individual colorspace methods with $pdf->colorspace.  Added
    documentation and examples for the various colorspace types except for the
    former colorspace_hue, because I couldn't find the standard that it
    implements (if one exists).
  - Renamed several methods in PDF::API2::Content:
  - linewidth -> line_width
  - linecap -> line_cap
  - linejoin -> line_join
  - miterlimit -> miter_limit
  - flatness -> flatness_tolerance
  - endpath -> end
  - rectxy -> rectangle
  - fillstroke -> paint
  - charspace -> character_spacing
  - wordspace -> word_spacing
  - nl -> crlf
  - advancewidth -> text_width
  - In PDF::API2::Content, replaced image and formimage with object.  Added a
    $page->object() convenience method that is equivalent to
  - In PDF::API2::Content, merged text_center and text_right into text.  Use
    the "align" option to set alignment to "center" or "right".
  - In PDF::API2::Content, merged paragraphs into paragraph.
  - In PDF::API2::Content, deprecated poly and added polyline.  poly was the
    only path-drawing method that took a starting position as its first two
    arguments.  These should be passed to a move call instead, with the
    remaining arguments passed to the new polyline method.
  - In PDF::API2::Content, added position, which combines the functionality of
    distance and textpos2 (which was undocumented).  Deprecated textpos, which
    attempted to return the position of the "cursor" after taking into account
    coordinate transformations.  textpos2 and the new position method return
    the text position before any coordinate transformations are applied, which
    is consistent with how the other methods in this class behave.
  - In PDF::API2::Content, deprecated bogen.  Recreate using arc, if feasible.
    If not, I'm likely to leave the code in place indefinitely as an
    undocumented method.
  - In PDF::API2::Content, deprecated cr.  Replace with either position (if
    called with arguments) or crlf (if called without arguments).
  - Tentatively deprecated $pdf->cjkfont.  If you're successfully using this
    method for CJK font support, read PDF::API2::Resource::CIDFont::CJKFont
    and contact me to discuss your use case.
  - Tentatively deprecated $pdf->unifont.  If you're successfully using this
    method for Unicode support, please contact me to discuss your use case.
  - Replaced $pdf->preferences() with separate page_mode, page_layout,
    viewer_preferences, and open_action methods, all of which are now fully
  - Added font_path and set_font_path accessors for the font search path (the
    list of directories searched when a font name is included without its full
    path).  Renamed addFontDirs to add_to_font_path.
  - Removed C:/WinNT/Fonts from the default font search path.
  - Named Destinations are now fully documented, with updated method names and
  - Outlines are now fully documented, with additional methods for examining
    and modifying the outline tree.  Existing method names and arguments have
    been updated to match those used in Named Destinations.  Various bugs have
    been fixed when reading or modifying outlines in existing PDFs.
  - Updated annotation documentation.  Revised methods and arguments to match
    those used in Named Destinations and Outlines.
  - A PDF version number specified in the document catalog is now respected by
  - Fixed space calculation between words in justified text (report and fix by
    Vladislav Glinsky).
* Wed Jul 28 2021 Tina Müller <>
- updated to 2.041
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.041     2021-07-27
  - Bug reports should now be made at GitHub Issues rather than RT.
  - Rename openpage to open_page in PDF::API2.  The old name is deprecated.
  - [RT #136648] Fix when writing PDFs containing cross-reference streams
    (reported by Chris Papademetrious, fix by Vadim Repin from RT #117184).
  - [RT #44877] GIFs containing comments or plain-text representations will no
    longer result in an error (reported by Chris Czub).
  - [RT #132844] Fix corruption when a PGM image is included (reported by Jeff
    Ratcliffe, fix by Vadim Repin).
  - Expand PNM support to include all image types.
  - [RT #131657] Disable recursion warnings while releasing (destroying) PDF
    indirect objects, which can be highly-interconnected (reported by Leon
  - [RT #41971] Fix when attempting to read an existing PDF's outlines
    (reported by Damyan Ivanov, fix based on a patch by Vadim Repin).
* Wed Apr 14 2021 Tina Müller <>
- updated to 2.040
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.040     2021-04-13
  - Fix open() followed by stringify() resulting in a corrupt (mostly-empty)
    PDF, which was broken by changes in 2.039 (reported by Gareth Tunley).
  - [RT #134993] Calling open($filename) followed by saveas($same_filename)
    instead of update() resulted in a corrupt PDF in 2.039, which no longer
    reads the entire file into memory on open (reported by Marco Pessotto).
  - [RT #134957] Fix encoding of \n in a PDF string containing non-printable
    characters (reported by Stuart Henderson).
  - [RT #133131] Fix endianness of 64-bit numbers in cross-reference stream
    widths array (reported by Christopher Papademetrious, fix by Vadim Repin).
* Fri Mar 05 2021 Tina Müller <>
- updated to 2.039
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.039     2021-03-04
  - PDF::API2->open($filename) no longer reads the entire file into memory
    before working on it, instead reading from the file as needed.  This
    results in a substantial reduction in memory usage and start-up time for
    large PDF files, particularly in cases where the calling script doesn't
    need to access all of the contents of the PDF.
  - PDF files containing cross-reference streams can now be modified and saved
    normally.  Previously, they were read-only.
  - $text->paragraph(...) and $text->paragraphs(...) (formerly "section") are
    no longer undocumented and experimental.  If you were previously using
    them at your own risk, note that "-spillover" is no longer an option (text
    will always wrap inside the specified width if possible).  In addition,
    paragraphs(...) no longer collapses consecutive newlines.
  - [RT #98546] There is now an -align-last option for justified text to
    specify how the final line should be justified.  Left is still the
  - Code in the PDF::API2::Basic::PDF namespace was originally licensed under
    the Perl Artistic License, which has been determined to not be
    (L)GPL-compatible.  Martin Hosken has graciously granted an MIT license
    for use of his code contained in PDF::API2, so the distribution may now be
    used solely under the terms of the LGPL rather than requiring both
    licenses simultaneously.  Many thanks to Petr Pisar for his help in
    working through the licensing issues.
  - Renamed $text->lead(...) to $text->leading(...).  The old name is
    deprecated but will continue to work.  If you're modifying PDF::API2
    objects by editing their hash values instead of using these accessors,
    you'll need to update your code.
  - Added a -compress option (on by default) to PDF::API2->new(), open(), and
    open_scalar().  If disabled, most streams won't be compressed, which can
    simplify debugging.
* Tue Sep 01 2020 Tina Müller <>
- updated to 2.038
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.038     2020-08-31
  - Use PDF::API2::XS or Image::PNG::Libpng, if either is installed, to speed
    up inclusion of PNG files with an alpha channel by an order of magnitude
    (written by Rob Scovell, sponsored by
* Thu Feb 06 2020 <>
- updated to 2.037
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.037     2020-02-05
  - Allow PDF 2.0 files to be opened.
  - [RT #131147] Ignore dictionary entries with null values (reported by Klaus
    Ethgen, fix by Vadim Repin).
* Wed Sep 18 2019 <>
- updated to 2.036
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.036     2019-09-17
  - Eliminate another uninitialized value warning in
* Sat Aug 10 2019 Stephan Kulow <>
- updated to 2.035
  see /usr/share/doc/packages/perl-PDF-API2/Changes
* Sun Jun 30 2019 Stephan Kulow <>
- updated to 2.034
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.034     2019-06-29
  - SUPPORTED PERL VERSIONS: Starting with this release, PDF::API2 will
    support major Perl versions released in the past six years, plus the 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.18, which
    was first released on 2013-05-18.
  - Add support for cross-reference streams using 64-bit field widths.
  - When the utf8 flag is set for a PDF string, automatically encode it as
    UCS-16BE instead of requiring a separate flag to be set in the PDF object.
    This resolves [RT #33497] and [RT #117031] in addition to making the code
    easier to maintain.
  - [RT #126274] Fix alignment when using UniFont with text_center or
    text_right when all characters are in the same block.
  - [RT #121911] Fix adding pages to a document structure with nested Pages
    elements.  This included a fairly substantial rewrite of the relevant
    code, so please report any new bugs related to adding pages (report and
    troubleshooting by Vadim Repin).
  - Renamed pdfile() to pdf_file() in PDF::API2::Annotation and
    PDF::API2::Outline.  The old name continues to work, but is deprecated.
Version: 2.033-bp150.2.4
* Wed Jul 12 2017
- updated to 2.033
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.033     2017-07-06
  - [RT #122371] Remove a couple of improperly-placed weaken statements
    (reported by Phil Perry).
  - [RT #122372] Fix weakening when a page is added to the end of a multiple
    page document (reported by Phil Perry).
  - Fix Bank Gothic core font (reported by Phil Perry).
* Mon Jul 03 2017
- updated to 2.032
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.032     2017-07-02
  - PDF::API2 has many circular references, and the end() method
    doesn't clear them all, so memory is leaked.  This release uses
    Scalar::Util's weaken() function to improve garbage collection.
    A significant number of circular references have been weakened,
    though many likely still remain.
  - [RT #120756] Eliminate a warning for an ambiguous call to
    CORE::open (first reported by Abdelbaki Brahmia).
  - $text->text_justified() and $text->text_fill_justified() now
    adjust the space between words rather than stretching individual
    characters in order to get the text to fit.
  - [RT #120397] Indirect references and indirect objects can have
    comments embedded in their whitespace, and their object number
    and generation may be split across multiple lines, which may not
    all be buffered (reported by SPROUT).
  - [RT #120450] Fix PDF::API2->open($filename)->stringify()
    (reported by SPROUT).
  - Fix an off-by-one error when calculating text width while
    charspace is non-zero.
  - [RT #120048] Fix PDF::API2->synfont() (broken in 2.029, fixed by Vadim
    Repin) and add basic testing.
* Mon Feb 13 2017
- updated to 2.031
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.031     2017-01-26
  - Fix use of cache files when reading streams: temp files will now
    be used any time a stream is larger than 16MB (by default).
    Formerly, due to a bug, they would only be created when a 4kB
    chunk of a stream increased to 16kB or more after being
  - Numbers, booleans, and null values can now be read from object
  - Update to [RT #113290]: Objects inside a large object stream are
    now read without loading the entire object stream into memory.
  - DEPRECATION: The low-level new_api methods have been deprecated
    in favor of calling new directly.  If your code uses
    new_api($api2, ...), replace it with new($api2->{'pdf'}, ...).
  - [RT #118352] Don't crash when adding an annotation to a page
    that has an existing annotations array stored as an indirect
    object (reported by Johan Vromans).
  - [RT #118717] Die with an informative error if a file can't be
    opened during open() or saveas() (reported by Johan Vromans).
* Fri Oct 14 2016
- updated to 2.030
  see /usr/share/doc/packages/perl-PDF-API2/Changes
* Tue Oct 11 2016
- updated to 2.029
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.029     2016-10-09
  - [RT #113293] Files with cross-reference streams weren't
    correctly setting the max object number (report and
    troubleshooting by Marco Pessotto).
  - Handle TIFF images with strips that are wider than the image
    (report and patch by Jeffrey Ratcliffe).
  - [RT #98574] Increase test coverage of PDF::API2::Content (tests
    by Phil Perry).
  - A bunch of code cleanup and documentation updates by Paul
  - Add a missing prereq on Win32 systems (patch by Michiel Beijen).
  - [RT #113514, #98552] Fix the dash() and renderingintent()
    methods in ExtGState (reported by Vadim Repin and Phil Perry).
  - Satisfy all Perl::Critic severity 5 policies.
  - [RT #117940] Allow PNG, GIF, and PNM files to be opened from
    filehandles in addition to filenames (patch by Johan Vromans).
  - [RT #33970] Fail fast when a referenced file can't be opened
    (requested by Barrie Slaymaker a mere 8.5 years ago).
  - Add -simplex, -duplexfliplongedge and -duplexflipshortedge as
    options to $pdf->preferences() (requested by Doug Poulin).
* Sun Jun 12 2016
- updated to 2.028
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.028     2016-06-08
  - [RT #113290] Fix for reading objects inside an object stream in
    a large PDF (patch by Marco Pessotto).
  - Eliminate an infinite loop when reading a corrupt dictionary.
* Mon Mar 14 2016
- updated to 2.027
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.027     2016-03-11
  - This release contains seven fixes for parsing PDFs.  They mostly
    affect files using cross-reference streams, which were first
    supported in the previous release.  Thanks to Marco Pessotto and
    Stuart Henderson for their help identifying and troubleshooting
  - Added contrib/ to help track down issues related to
    opening and parsing PDFs.
* Tue Mar 08 2016
- updated to 2.026
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.026     2016-02-24
  - [RT #48683] Add support for PDFs with cross-reference streams
    and object streams (patch by Don Huettl of Grant Street Group).
  - [RT #107333] Accept an empty string as a valid Name, per PDF
    spec 1.7 section 7.3.5 (patch by Mark Balitsky).
  - [RT #98551] Rename aliases 2A, 4A, 2B, and 4B to 2A0, 4A0, 2B0,
    and 4B0.  The old names will continue to work, but are now
    undocumented (patch by Phil Perry).
  - Add -mils and -color as options for barcodes.  Reset linedash so
    that barcodes are always solid lines (patch by Erelen).
  - [RT #98549] Rename meterlimit to miterlimit (patch by Phil
  - [RT #98534] Rename hspace to hscale (patch by Phil Perry).
  - Fixed an infinite loop when RunLengthDecode is used for output.
  - [RT #65582] Fix embedding of OpenType fonts (fix by Simon Cozens).
  - [RT #67767] Allow an empty page to be imported into a PDF using
    importPageIntoForm (reported by Antti Lankila).
  - [RT #66341] Various fixes for ASCII85Decode and LZWDecode.
* Sat Sep 26 2015
- updated to 2.025
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.025     2015-09-23
  - The previous release included a patch that broke compatibility
    with Perl 5.8.x.  The minimum supported version is now Perl
    5.8.5, and there is a .perl-version file to facilitate testing
    using plenv.
* Sun Sep 20 2015
- updated to 2.024
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.024     2015-09-18
  - [RT #104133] Include all bounding boxes when importing a page
    (patch by Don Huettl of Grant Street Group).
  - [RT #104133] When retrieving bounding boxes for a page, fall
    back according to the defaults listed in the PDF spec (patch by
    Don Huettl of Grant Street Group).
  - Barcodes now take an optional -caption argument that will be
    printed beneath the barcode.  This can replace or be used in
    conjunction with the text representation of the barcode
    (requested by Gareth Tunley).
  - [RT #105581] Calls to width() in BaseFont are now significantly
    faster (patch by Dmitri Tikhonov).
* Tue Apr 14 2015
- updated to 2.023
  see /usr/share/doc/packages/perl-PDF-API2/Changes
  2.023     2014-09-12
  - The fix for [RT #69503] broke a previously-working case where a
    page object could be passed (and was expected).  The -firstpage
    option now accepts a page object or a page number.  Thanks to
    Marco Pessotto for the bug report and test.
* Fri Jul 25 2014
- updated to 2.022
  - Added $pdf->version() get/set method.  When opening an existing
    PDF, the existing version number will now be retained.
  - Renamed the following in PDF::API2:
  - importpage to import_page
  - openScalar to open_scalar
    The old names are deprecated.
  - [RT #69503] Fix the -firstpage option to $pdf->preferences() so
    that it doesn't always lead to a crash (reported by Dietrich
  - [RT #47974] Accept malformed xref subsections (with a warning)
    that have extraneous spaces on the first line (reported by
    Abhinav Kaushik).
  - [RT #94505] For Code128 barcodes, the initial character set is
    now optional (defaults to B or C depending on the content to be
    encoded).  The initial character set can be passed as a capital
    letter, and the program will die if an invalid character set is
    requested (requested by Andrea Nall).
  - Interleaved 2 of 5 barcodes now prepend a zero when an odd
    number of digits is specified, which is standard behavior.
    Previously, a zero was appended instead.
  - $page->rotate(0) now sets rotation to 0 degrees rather than
    deleting an existing page rotation command.  Page rotation is
    inherited, so this is necessary to undo any inherited page
  - Fix: Attempts to use EAN-128 barcodes resulted in an error.
  - Add a more informative error when text() is called without first
    setting a font(), and when font() is called without including a
    font size.
- remove work around only applied on 11.3 and 11.4
* Mon Mar 17 2014
- updated to 2.021
  - Fixed numerous bugs in the string parsing code, including the
    one reported in [RT #63918] by Frank Doepper.
  - [RT #41049] Rewrote literal string parsing to prevent a stack
    overflow due to an inefficient regex (reported by Sergei
  - [RT #91822] Fix compression of GIF images to ensure that output
    codes don't exceed 12 bits (reported by Vadim Repin).
  - The RunLengthDecode filter didn't actually work.  Its code has
    been rewritten and now passes basic encoding and decoding tests.
  - Fix Code128 barcode switching from Code C to Code B in certain
    cases (reported by Doru Petrescu).
* Thu Aug 01 2013
- update to 2.020
  * Give a more informative error message when a PDF file using a
    cross-reference stream is encountered.  The Known Issues section
    of the documentation includes pointers on how to add support in
    case someone else can get to this before I do.
  * Text using TrueType fonts is now searchable again.  In version
    0.61, an undocumented -unicodemap option was added to nearly all
    of the font resource methods, which only included a ToUnicode
    CMap if it was set (and it's required in order for PDF readers
    to be able to identify individual characters if BaseEncoding
    isn't present, which it isn't for TrueType fonts).
    I've left the -unicodemap option in place, and it's still
    undocumented (except here), but it's now on by default.  Call
    $pdf->ttfont($fontfile, -unicodemap => 0) if you want to disable
    it for performance or file size reasons.
  * Add a note to the stringify method's documentation saying that
    it's a destructive operation.
  * The various filter types have their own classes in the
    PDF::API2::Basic::PDF::Filter namespace now, rather than having
    all of the packages in
  * To facilitate testing and ensure that identically-generated PDFs
    have identical output in Perl 5.17.5 or later, PDF dictionary
    keys are now sorted during output.
* Thu Jun 07 2012
- fix License (
  * LGPL-2.1+
- fix description
* Tue Sep 06 2011
- workround broken Unicode::UCD in 11.4 and 11.3:
  We providing our own UnicodeData.txt to make
  t/00-all-usable.t happy.
* Thu Mar 31 2011
- update to 2.019
  - [RT #66167] Fix a typo in the require statement for code128
    barcodes (TC Kuan).
  - Numerous modules are now only loaded when they're needed, which
    should help speed up the load time and reduce the memory
  - Test coverage is up to about 45% of the codebase.
  - The tests in 2.017 exposed a floating point issue where some
    computers give more trailing zeros than others.  It doesn't
    affect the output, but it does break the tests on those
    computers, since the PDFs are slightly different.  This version
    modifies the float() method to remove trailing zeros, which
    should fix the test breakage and give consistent PDFs.
  - The DejaVu fonts have been removed from the distribution, since
    they were only used by one example script.  If you need them for
    your project, you can download them from
* Fri Dec 10 2010
- fix buildrequires
* Wed Dec 01 2010
- switch to perl_requires macro
* Mon Nov 29 2010
- remove /var/adm/perl-modules