use Text::PDF::File;
use Text::PDF::Utils;
use Text::PDF::Page;
use Getopt::Std;
$version = "1.002"; # MJPH 10-DEC-1999 Fix page counts for pages objs.
# $version = "1.001"; # MJPH 30-NOV-1999 Original
getopts("b:h:p:qrs:");
if (!defined $ARGV[0])
{
die <<"EOT";
PDFADDPG [-b num/size] [-p num] [-q] pdffile
(c) M. Hosken. Version: $version
Inserts a blank page of given or calculated size after the given page. The
new information is appended to pdffile and can be reverted.
-b num/size Specifies which page contains the output page size details
or gives the dimensions of the page in pts (x,y). [inherited or 1]
-p num Specifies the page number after which to insert [last page]
-q Quiet (no on screen messages)
EOT
}
$p = Text::PDF::File->open($ARGV[0], 1); # open file for appending
$r = $p->read_obj($p->{'Root'}); # read the page root
$pgs = $p->read_obj($r->{'Pages'}); # Get the pages tree
$pgcount = $pgs->{'Count'}->val; # how many pages
if ($opt_b =~ m/^([0-9]+)\;([0-9]+)/oi) # parse $opt_b making @pbox
{
@pbox = (0, 0, $1, $2);
$opt_b = 0;
}
else
{ $opt_b = -1 unless defined $opt_b; }
$newpage = Text::PDF::Page->new($p, $pgs, $opt_p);
# now set the page's bounding box if it needs setting
if ($opt_b != -1 || $newpage->find_prop('MediaBox') eq "")
{ $newpage->bbox(@pbox); }
$p->append_file; # update appended file