content-type: text/plain; RealBin = /home1/pryrtcom PDF::API2::VERSION = 2.043 ROOT = $root = /home1/pryrtcom/public_html [Sat Nov 5 16:07:36 2022] sscce-t.pl: Use of uninitialized value in vec at /home1/pryrtcom/perl5/lib/perl5/PDF/API2/Resource/CIDFont/TrueType/FontFile.pm line 554. [Sat Nov 5 16:07:36 2022] sscce-t.pl: Use of uninitialized value in scalar assignment at /home1/pryrtcom/perl5/lib/perl5/PDF/API2/Resource/CIDFont/TrueType/FontFile.pm line 554. Font => PDF::API2::Resource::CIDFont::TrueType=HASH(0x469f530) Page => PDF::API2::Page=HASH(0x2c752e8) Text => PDF::API2::Content::Text=HASH(0x3b97148) set font => PDF::API2::Content::Text=HASH(0x3b97148) set pos => PDF::API2::Content::Text=HASH(0x3b97148) set text => 156.096 save => Content-type: text/plain 127.0.0.1/../output.pdf #### #!/usr/bin/perl -T use warnings; use strict; use autodie; use CGI::Carp qw/fatalsToBrowser/; BEGIN { print "\n" x 10; print "content-type: text/plain;\n\n"; $|=1; $\ = "\n"; } use FindBin qw($RealBin); my $safepath; BEGIN { print "RealBin = $RealBin"; if( $RealBin =~ m!^(/home1/pryrtcom)!) { $safepath = "$1/../lib"; } else { die "insecure access!"; } } use lib $safepath; # no reason to put quotes around it use cPanelUserConfig; use PDF::API2; print "PDF::API2::VERSION = ", $PDF::API2::VERSION; my $root = '/home1/pryrtcom/public_html'; print "ROOT = \$root = $root"; my $pdf = PDF::API2->open("$root/../local.pdf"); print "Font => ", my $font = $pdf->font("/usr/share/fonts/dejavu/DejaVuSans.ttf"); print "Page => ", my $page = $pdf->open_page(1); print "Text => ", my $text = $page->text; print "set font => ", $text->font($font, 36); print "set pos => ", $text->position(656, 403); print "set text => ", $text->text('ABC-123'); print "save => ", $pdf->save("$root/../output.pdf"); undef $\; print "\n"x4; print "Content-type: text/plain\n\n"; print "$ENV{'HTTP_HOST'}/../output.pdf\n";