in reply to CAM::PDF w/ Text::PDF::FlateDecode

Can you do

perl -MText::PDF::Filter -e "Text::PDF::FlateDecode->new()"

without getting an error?  If not, you probably haven't installed Text::PDF correctly, or - if you've installed it in a non-standard place - need to tell Perl where to find it (using "use lib '...';" or some such).

Replies are listed 'Best First'.
Re^2: CAM::PDF w/ Text::PDF::FlateDecode
by CaMelRyder (Pilgrim) on Aug 21, 2007 at 14:16 UTC
    Nope, no error message when i run

    perl -MText::PDF::Filter -e "Text::PDF::FlateDecode->new()"
    It runs fine.
    ¥peace from CaMelRyder¥
      I ended up converted the pdf to a text file using pdftotext.
      Then I modded my original program to read from that.
      
      However, I would like to know a programmatic solution to this problem
      since I have run into it twice and have failed both times.
      
      
      
      ¥peace from CaMelRyder¥
        I ran in the same error and here is the "empirical" way I found to solve it.
        I'm working on a Windows XP machine with Activeperl 5.10.0 Build 1003. My CAM-PDF module version is 1.13, the versions of its dependecies are Text-PDF module version 0.29 and Crypt-RC4 module version 2.02

        As CaMelRyder reported, from this simple program:
        use strict; use warnings; use CAM::PDF; my $pdf = CAM::PDF->new("test.pdf"); # test.pdf is the existing pdf my $string = $pdf->getPageText(1); open (C, ">", "test.txt"); print C $string; # print extracted string
        .. I obtained this error:
        Failed to open filter FlateDecode (Text::PDF::FlateDecode) Unrecognized type in parseAny: 1 £ý¢═«ý╩▓ØÎ▀O▒:♠÷n£Õ╩...
        the really strange thing was that adding ONE LINE at the beggining of the program:
        @INC=('C:/Perl/lib','C:/Perl/site/lib','.'); # THIS LINE IS ADDED use strict; use warnings; use CAM::PDF; my $pdf = CAM::PDF->new("test.pdf"); # test.pdf is the existing pdf my $string = $pdf->getPageText(1); open (C, ">", "test.txt"); print C $string; # print extracted string
        everything worked fine and no error message was displayed.
        What I've done is a very little change to the Perl special variable @INC which is: (from perldoc)
        "The array @INC contains the list of places that the use construct look for its library files."

        Usually the content of this array @INC is ('C:/Perl/site/lib','C:/Perl/lib','.') I verified that by typing from the command line of my computer: perl -de0 in this way I opened the perl debugger and I typed: x @INC
        On resume, I obtained that:

        usually _______________ => @INC is ____ ('C:/Perl/site/lib','C:/Perl/lib','.')
        to make CAM-PDF working => @INC must be ('C:/Perl/lib','C:/Perl/site/lib','.') => I INVERTED THE FIRST TWO ELEMENTS OF @INC

        I DON'T KNOW THE REASON OF ALL THAT, AND I WAIT FOR EXPLANATIONS FROM SOME PERLMONK MORE EXPERT THAN ME.