* Fri Sep 17 2021 Tina Müller <timueller+perl@suse.de>
- 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
replacements.
- 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
metadata.
- 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
methods).
- 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
migrating.
- 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
$page->graphics->object().
- 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
documented.
- 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
arguments.
- 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
$pdf->version().
- Fixed space calculation between words in justified text (report and fix by
Vladislav Glinsky).
* Wed Jul 28 2021 Tina Müller <timueller+perl@suse.de>
- 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
Winter).
- [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 <timueller+perl@suse.de>
- 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 <timueller+perl@suse.de>
- 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
default.
- 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 <timueller+perl@suse.de>
- 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 prayerletters.com).
* Thu Feb 06 2020 <timueller+perl@suse.de>
- 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 <timueller+perl@suse.de>
- updated to 2.036
see /usr/share/doc/packages/perl-PDF-API2/Changes
2.036 2019-09-17
- Eliminate another uninitialized value warning in BaseFont.pm.
* Sat Aug 10 2019 Stephan Kulow <coolo@suse.com>
- updated to 2.035
see /usr/share/doc/packages/perl-PDF-API2/Changes
* Sun Jun 30 2019 Stephan Kulow <coolo@suse.com>
- 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 coolo@suse.com
- 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 coolo@suse.com
- 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 coolo@suse.com
- 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
decompressed.
- Numbers, booleans, and null values can now be read from object
streams.
- 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 coolo@suse.com
- updated to 2.030
see /usr/share/doc/packages/perl-PDF-API2/Changes
* Tue Oct 11 2016 coolo@suse.com
- 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
Cochrane.
- 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 coolo@suse.com
- 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 coolo@suse.com
- 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
bugs.
- Added contrib/pdf-debug.pl to help track down issues related to
opening and parsing PDFs.
* Tue Mar 08 2016 coolo@suse.com
- 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
Perry).
- [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 coolo@suse.com
- 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 coolo@suse.com
- 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 coolo@suse.com
- 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 coolo@suse.com
- 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
Streifert).
- [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
rotation.
- 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 coolo@suse.com
- 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
Fetisov).
- [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 chris@computersalat.de
- 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 Filter.pm.
* 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 chris@computersalat.de
- fix License (spdx.org)
* LGPL-2.1+
- fix description
* Tue Sep 06 2011 jw@suse.com
- 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 coolo@novell.com
- 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
footprint.
- 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 http://dejavu-fonts.org
* Fri Dec 10 2010 coolo@novell.com
- fix buildrequires
* Wed Dec 01 2010 coolo@novell.com
- switch to perl_requires macro
* Mon Nov 29 2010 coolo@novell.com
- remove /var/adm/perl-modules