in reply to PDF extract

You are getting the error "Can't call method "getRootDict" on an undefined value" because 'new.pdf' doesn't exist.

Manipulating PDF files is quite complex and I found that I had to use both modules to achieve what you are trying to do as PDF::API2 doesn't seem to have any way of extracting text and CAM::PDF doesn't seem to have any way of adding an empty page.

Hopefully this will help you on your way:

use strict; use warnings; use CAM::PDF; use PDF::API2; my $pdfone = CAM::PDF->new('input.pdf'); my $pdftwo = PDF::API2->open('output.pdf'); my $font = $pdftwo->corefont('Helvetica-Bold'); for my $pagenum (1 .. $pdfone->numPages() ) { my $text = $pdfone->getPageText($pagenum) or next; my $page = $pdftwo->page(); # add a new page my $pdf_text = $page->text(); $pdf_text->font($font,12); my @lines = split("\n",$text); my ($x,$y) = (50,700); for my $line (@lines) { $pdf_text->translate($x,$y); $pdf_text->text($line); $y = $y - 20; } } $pdftwo->saveas('output.pdf');

Replies are listed 'Best First'.
Re^2: PDF extract
by PerlSufi (Friar) on Apr 01, 2013 at 13:59 UTC
    Thank you tangent!! You're a life saver! I was banging my head against the wall all day yesterday on how to do this. I saw that CAM::PDF couldn't create a new page so I knew I had to combine them, I just didn't see how yet. Is there a GIVE MONEY$$ option on here for monks?! :P
      Glad to be of help.
        You're amazing, tangent. Thanks. My goal now is to get the strings of those two PDFs together on page one of the new.pdf with some made-up order information from a txt file.