jdtoronto has asked for the wisdom of the Perl Monks concerning the following question:

I have been using PDF::API2 on Linux with no issues for a while, but I have just tried to use it to modify a template PDF file on Windows, what a disisater, has anyone else had problems? I am using v0.51 - I cannot find a PPM package of 0.53.

If I open the PDF file and just do a saveas, it is fine. As soon as I attempt to declare the fonts by creating the %fonts hash, the fileis saved, but it is "damaged" and cannot be read.

package InContact::PDF::Newsletter; use strict; use Data::Dumper; use PDF::API2; use constant mm => 25.4 / 72; use constant in => 1 / 72; use constant pt => 1; sub new { my ( $class, %arg ) = @_; my $self = bless { _dbh => $arg{-dbh}, _tbl => $arg{-tbl} || 'dst_tbl', _out_file => $arg{-outfile} || 'newsletter.pdf', #_compress => $arg{-compress} || 1, _mw => $arg{-mw}, }, $class; return $self; } sub create_pdf { my $self = shift; my $pdf = PDF::API2->open('nltemplate.pdf'); my %font = ( LucidaSans => { Regular => $pdf->ttfont('lsans.ttf'), Italic => $pdf->ttfont('lsansi.ttf'), }, TimesNewRoman => { Regular => $pdf->ttfont('TIMES.TTF'), Italic => $pdf->ttfont('TIMESI.TTF'), Bold => $pdf->ttfont('TIMESBD.TTF'), BoldItalic => $pdf->ttfont('TIMESBI.TT +F'), }, ); my %colour = ( Brown => { MastheadText => "#995D1D", }, ); $pdf->saveas( $self->{_out_file} ); system("$self->{_out_file}"); return; } 1;
When I run the code witht he font hash creation uncommented, this is what I get:
Argument "a" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "b" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "c" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "d" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "e" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "f" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "g" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "h" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "i" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "j" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "k" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "l" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "m" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "n" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "o" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "p" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "q" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "r" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "s" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "t" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "u" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "v" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "w" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "x" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "y" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "z" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "A" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "B" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "C" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "D" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "E" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "F" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "G" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "H" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "I" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "J" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "K" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "L" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "M" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "N" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "O" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "P" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "Q" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "R" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "S" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "T" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "U" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "V" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "W" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "X" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "Y" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "Z" isn't numeric in array element at C:/Perl/site/lib/PDF/AP +I2/Resource/BaseFont.pm line 548. Argument "space" isn't numeric in array element at C:/Perl/site/lib/PD +F/API2/Resource/BaseFont.pm line 548. Use of uninitialized value in addition (+) at C:/Perl/site/lib/PDF/API +2/Basic/TTF/Cmap.pm line 358. Use of uninitialized value in numeric ne (!=) at C:/Perl/site/lib/PDF/ +API2/Basic/TTF/Cmap.pm line 358. Use of uninitialized value in numeric eq (==) at C:/Perl/site/lib/PDF/ +API2/Basic/TTF/Cmap.pm line 359. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 395. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 333. Use of uninitialized value in addition (+) at C:/Perl/site/lib/PDF/API +2/Basic/TTF/Cmap.pm line 358. Use of uninitialized value in numeric ne (!=) at C:/Perl/site/lib/PDF/ +API2/Basic/TTF/Cmap.pm line 358. Use of uninitialized value in numeric eq (==) at C:/Perl/site/lib/PDF/ +API2/Basic/TTF/Cmap.pm line 359. Use of uninitialized value in pack at C:/Perl/site/lib/PDF/API2/Basic/ +TTF/Cmap.pm line 395. Wide character in print at C:/Perl/site/lib/PDF/API2.pm line 775.
Any clues?

jdtoronto

Replies are listed 'Best First'.
Re: PDF::API2 problems
by holli (Abbot) on Jun 21, 2006 at 20:30 UTC
    I cannot find a PPM package of 0.53.
    PDF::API2 is a pure perl module. You should be able to install it without problems using the standard get/make/test/install procedure as described in A Guide to Installing Modules. Btw, there is a new version 0.54

    update: Mmh. I swear I saw 0.54 when I installed it first via the cpan shell. but after regetting it it says 0.53. Anyway it's still pure perl ;)


    holli, /regexed monk/
      Thanks holli, I only saw 0.53 on CPAN, as soon as I have some time I will do install it, thank you. Where is 0.54?

      jdtoronto