@@ -1,3 +1,11 @@
+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.
+
+
2.022 2014-07-04
- Added $pdf->version() get/set method. When opening an existing
@@ -6,7 +6,6 @@ META.yml
Makefile.PL
PATENTS
README
-barcode.pl~
contrib/combine_pdfs.pl
contrib/pdf-deoptimize.pl
contrib/pdf-optimize.pl
@@ -170,7 +169,7 @@ t/resources/1x1.jpg
t/resources/1x1.png
t/resources/1x1.tif
t/resources/sample.pdf
-t/rt69503.t~
+t/rt69503.t
t/string.t
t/text.t
t/tiff.t
@@ -18,4 +18,4 @@ requires:
perl: v5.8.1
resources:
repository: https://bitbucket.org/ssimms/pdfapi2
-version: 2.022
+version: 2.023
@@ -25,7 +25,7 @@ my %WriteMakefileArgs = (
"Font::TTF" => 0
},
"TEST_REQUIRES" => {},
- "VERSION" => "2.022",
+ "VERSION" => "2.023",
"test" => {
"TESTS" => "t/*.t"
}
@@ -1,7 +1,7 @@
This archive contains the distribution PDF-API2,
-version 2.022:
+version 2.023:
Facilitates the creation and modification of PDF files
@@ -1,23 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-use PDF::API2;
-
-my $pdf = PDF::API2->new();
-my $page = $pdf->page();
-my $gfx = $page->gfx();
-
-my $barcode = $pdf->xo_ean13(
- -code => '0123456789012',
- -zone => 10,
- -umzn => 0,
- -lmzn => 10,
- -font => $pdf->corefont('Helvetica'),
- -fnsz => 10,
-);
-
-$gfx->formimage($barcode, 100, 100, 1);
-
-$pdf->saveas('barcode.pdf');
@@ -1,5 +1,5 @@
name = PDF-API2
-version = 2.022
+version = 2.023
author = Steve Simms <steve@deefs.net>
license = LGPL_2_1
copyright_holder = Steve Simms
@@ -1,6 +1,6 @@
package PDF::API2::Annotation;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Array;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Objind';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Bool;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::String';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Dict;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Objind';
@@ -14,7 +14,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::File;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
=head1 NAME
@@ -1,6 +1,6 @@
package PDF::API2::Basic::PDF::Filter::ASCII85Decode;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Filter';
@@ -1,6 +1,6 @@
package PDF::API2::Basic::PDF::Filter::ASCIIHexDecode;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Filter';
@@ -1,6 +1,6 @@
package PDF::API2::Basic::PDF::Filter::FlateDecode;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Filter';
@@ -1,6 +1,6 @@
package PDF::API2::Basic::PDF::Filter::LZWDecode;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Filter::FlateDecode';
@@ -1,6 +1,6 @@
package PDF::API2::Basic::PDF::Filter::RunLengthDecode;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Filter';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Filter;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use PDF::API2::Basic::PDF::Filter::ASCII85Decode;
use PDF::API2::Basic::PDF::Filter::ASCIIHexDecode;
@@ -1,7 +1,7 @@
# Literal PDF Object for Dirty Hacks ...
package PDF::API2::Basic::PDF::Literal;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Objind';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Name;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::String';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Null;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Objind';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Number;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::String';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Objind;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
=head1 NAME
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Page;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Pages';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Pages;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::String;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Objind';
@@ -12,7 +12,7 @@
#=======================================================================
package PDF::API2::Basic::PDF::Utils;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
=head1 NAME
@@ -1,6 +1,6 @@
package PDF::API2::Content::Text;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use warnings;
use strict;
@@ -1,6 +1,6 @@
package PDF::API2::Content;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -1,6 +1,6 @@
package PDF::API2::Lite;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
BEGIN {
@@ -10,7 +10,7 @@
#=======================================================================
package PDF::API2::Matrix;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
sub new {
my $type = shift;
@@ -1,6 +1,6 @@
package PDF::API2::NamedDestination;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -1,6 +1,6 @@
package PDF::API2::Outline;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -1,6 +1,6 @@
package PDF::API2::Outlines;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use warnings;
use strict;
@@ -1,6 +1,6 @@
package PDF::API2::Page;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Pages';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::BaseFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::CIDFont::CJKFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::CIDFont';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::CIDFont::TrueType::FontFile;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::CIDFont::TrueType;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::CIDFont';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::CIDFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::BaseFont';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace::DeviceN;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::ColorSpace';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace::Indexed::ACTFile;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::ColorSpace::Indexed';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace::Indexed::Hue;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::ColorSpace::Indexed';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace::Indexed::WebColor;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::ColorSpace::Indexed';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace::Indexed;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::ColorSpace';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace::Separation;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::ColorSpace';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ColorSpace;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Array';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Colors;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use strict;
use warnings;
@@ -1,6 +1,6 @@
package PDF::API2::Resource::ExtGState;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::BdFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::Font';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::bankgothic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'BankGothicMediumBT',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::courier;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Courier',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::courierbold;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Courier-Bold',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::courierboldoblique;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Courier-BoldOblique',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::courieroblique;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Courier-Oblique',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::georgia;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Georgia',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::georgiabold;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Georgia,Bold',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::georgiabolditalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Georgia,BoldItalic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::georgiaitalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Georgia,Italic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::helvetica;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Helvetica',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::helveticabold;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Helvetica-Bold',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::helveticaboldoblique;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Helvetica-BoldOblique',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::helveticaoblique;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Helvetica-Oblique',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::symbol;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Symbol',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::timesbold;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Times-Bold',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::timesbolditalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Times-BoldItalic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::timesitalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Times-Italic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::timesroman;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Times-Roman',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::trebuchet;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'TrebuchetMS',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::trebuchetbold;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'TrebuchetMS,Bold',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::trebuchetbolditalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'TrebuchetMS,BoldItalic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::trebuchetitalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'TrebuchetMS,Italic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::verdana;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Verdana',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::verdanabold;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Verdana,Bold',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::verdanabolditalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Verdana,BoldItalic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::verdanaitalic;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Verdana,Italic',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::webdings;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Webdings',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::wingdings;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'Wingdings',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont::zapfdingbats;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
$FONTDATA = {
'fontname' => 'ZapfDingbats',
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::CoreFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::Font';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::Postscript;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::Font';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font::SynFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::Font';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Font;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::BaseFont';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Glyphs;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use strict;
use warnings;
@@ -1,6 +1,6 @@
package PDF::API2::Resource::PaperSizes;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use strict;
use warnings;
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Pattern;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::Shading;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::UniFont;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use Encode qw(:all);
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::BarCode::codabar;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Form::BarCode';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::BarCode::code128;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Form::BarCode';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::BarCode::code3of9;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Form::BarCode';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::BarCode::ean13;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Form::BarCode';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::BarCode::int2of5;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Form::BarCode';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::BarCode;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Form::Hybrid';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form::Hybrid;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base qw(PDF::API2::Content PDF::API2::Resource::XObject::Form);
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Form;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image::GD;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Image';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image::GIF;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Image';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image::JPEG;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Image';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image::PNG;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Image';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image::PNM;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
# For spec details, see man pages pam(5), pbm(5), pgm(5), pnm(5),
# ppm(5), which were pasted into the __END__ of this file in an
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image::TIFF;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject::Image';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject::Image;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource::XObject';
@@ -1,6 +1,6 @@
package PDF::API2::Resource::XObject;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Resource';
@@ -1,6 +1,6 @@
package PDF::API2::Resource;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use base 'PDF::API2::Basic::PDF::Dict';
@@ -1,6 +1,6 @@
package PDF::API2::UniWrap;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
# Implements UAX#14: Line Breaking Properties
# David Nesting <david@fastolfe.net>
@@ -1,6 +1,6 @@
package PDF::API2::Util;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
no warnings qw[ recursion uninitialized ];
@@ -1,6 +1,6 @@
package PDF::API2::Win32;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
no warnings qw[ deprecated recursion uninitialized ];
@@ -1,6 +1,6 @@
package PDF::API2;
-our $VERSION = '2.022'; # VERSION
+our $VERSION = '2.023'; # VERSION
use Carp;
use Encode qw(:all);
@@ -303,7 +303,8 @@ B<Initial Page Options>:
=item -firstpage => [ $page, %options ]
-Specifying the page to be displayed, plus one of the following options:
+Specifying the page (either a page number or a page object) to be
+displayed, plus one of the following options:
=over
@@ -462,31 +463,35 @@ sub preferences {
my ($page, %args) = @{$options{-firstpage}};
$args{'-fit'} = 1 unless scalar keys %args;
+ # $page can be either a page number (which needs to be wrapped
+ # in PDFNum) or a page object (which doesn't).
+ $page = PDFNum($page) unless ref($page);
+
if (defined $args{'-fit'}) {
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('Fit'));
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('Fit'));
}
elsif (defined $args{'-fith'}) {
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('FitH'), PDFNum($args{'-fith'}));
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('FitH'), PDFNum($args{'-fith'}));
}
elsif (defined $args{'-fitb'}) {
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('FitB'));
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('FitB'));
}
elsif (defined $args{'-fitbh'}) {
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('FitBH'), PDFNum($args{'-fitbh'}));
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('FitBH'), PDFNum($args{'-fitbh'}));
}
elsif (defined $args{'-fitv'}) {
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('FitV'), PDFNum($args{'-fitv'}));
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('FitV'), PDFNum($args{'-fitv'}));
}
elsif (defined $args{'-fitbv'}) {
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('FitBV'), PDFNum($args{'-fitbv'}));
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('FitBV'), PDFNum($args{'-fitbv'}));
}
elsif (defined $args{'-fitr'}) {
croak 'insufficient parameters to -fitr => []' unless scalar @{$args{'-fitr'}} == 4;
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('FitR'), map { PDFNum($_) } @{$args{'-fitr'}});
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('FitR'), map { PDFNum($_) } @{$args{'-fitr'}});
}
elsif (defined $args{'-xyz'}) {
croak 'insufficient parameters to -xyz => []' unless scalar @{$args{'-xyz'}} == 3;
- $self->{'catalog'}->{'OpenAction'} = PDFArray(PDFNum($page), PDFName('XYZ'), map { PDFNum($_) } @{$args{'-xyz'}});
+ $self->{'catalog'}->{'OpenAction'} = PDFArray($page, PDFName('XYZ'), map { PDFNum($_) } @{$args{'-xyz'}});
}
}
$self->{'pdf'}->out_obj($self->{'catalog'});
@@ -0,0 +1,34 @@
+use Test::More tests => 2;
+
+use strict;
+use warnings;
+
+use PDF::API2;
+
+# -firstpage as page number (original bug report)
+
+my $pdf = PDF::API2->new();
+my $page1 = $pdf->page();
+my $page2 = $pdf->page();
+
+$pdf->preferences(-firstpage => [2, -fit => 1]);
+
+my $output = $pdf->stringify();
+
+like($output,
+ qr/OpenAction \[ 2 \/Fit \]/,
+ q{-firstpage accepts a page number});
+
+# -firstpage as page object (regression)
+
+$pdf = PDF::API2->new();
+$page1 = $pdf->page();
+$page2 = $pdf->page();
+
+$pdf->preferences(-firstpage => [$page2, -fit => 1]);
+
+$output = $pdf->stringify();
+
+like($output,
+ qr/OpenAction \[ \d+ 0 R \/Fit \]/,
+ q{-firstpage accepts a page object});
@@ -1,11 +0,0 @@
-use Test::More;
-
-use strict;
-use warnings;
-
-use PDF::API2;
-
-my $pdf = PDF::API2->new();
-$pdf->page();
-$pdf->preferences(-firstpage => [1, -fit => 1]);
-