http://www.perlmonks.org?node_id=990875


in reply to PDF::API2 text problem

I've found that directly inserting text into a PDF can be fraught with danger. I suspect that the text/graphics state has been left in an altered state; I.E. its undergone rotation or translation etc. I've found it more robust to recreate each page in the PDF and import each page as a form element. Then output any new text or graphics.
#!/usr/bin/perl use warnings; use strict; use PDF::API2; my $file = shift (@ARGV); my $pdf_in = PDF::API2->open($file); my $pdf = PDF::API2->new; my $pagenum = 1; my $page_in = $pdf_in->openpage($pagenum); my $page = $pdf->page(0); $page->mediabox($page_in->get_mediabox); $page->trimbox($page_in->get_trimbox); my $gfx = $page->gfx; my $xo = $pdf->importPageIntoForm($pdf_in, $pagenum); $gfx->formimage($xo, 0, 0, # x y 1); # scale my $font = $pdf->corefont('Helvetica-Bold'); my $text = $page->text(); $text->font($font,10); #10-point font size $text->translate(15,770); #top left corner.. 0,0 origin starts in the +bottom left corner $text->text('blah blah sample text'); $pdf->saveas($file);