#!perl # CLI arguments: # 0 = path to PDF to convert # 1 = job identifier, 5 digit string # 2 = folio start number, no default # include modules use PDF::API2; # declarations use constant mm => 25.4 / 72; use constant in => 1 / 72; use constant pt => 1; # load pdf from passed argument my $pdf = PDF::API2->open($ARGV[0]) || die("Unable to open PDF"); # font definitions my %font = ( Helvetica => { Bold => $pdf->corefont('Helvetica-Bold',-encoding => 'latin1' ), Roman => $pdf->corefont('Helvetica',-encoding => 'latin1' ), Italic => $pdf->corefont('Helvetica-Oblique',-encoding => 'latin1' ), }, Verdana => { Bold => $pdf->corefont('Verdana-Bold',-encoding => 'latin1' ), Roman => $pdf->corefont('Verdana',-encoding => 'latin1' ), Italic => $pdf->corefont('Verdana-Italic',-encoding => 'latin1' ), BoldItalic => $pdf->corefont('Verdana-BoldItalic',-encoding => 'latin1' ), }, ); # get total number of pages my $pagenumber = $pdf->pages; # folio offset, if we dont want to start at 1 my $offset = int($ARGV[2]-1); for ($count=1; $count<=$pagenumber; $count++) { # get the current page my $page = $pdf->openpage($count); # resize the pdf to legal $page->mediabox('Legal'); $page->cropbox('Legal'); $page->bleedbox('Legal'); $page->trimbox('Legal'); $page->artbox('Legal'); # construct a text box my $text = $page->text; # define font, face, pointsize $text->font( $font{"Verdana"}{"Roman"}, 12/pt ); # font color (not background) $text->fillcolor("#000000"); # x/y coords, remember cartesian coordinates, left,bottom = 0,0 $text->translate( 74/pt, 3/pt ); # actual text to place, text_right is single line look at text_block for para's $text->text_right($ARGV[1] . "_" . ($count+$offset)); }