4 Stimmen

parsing pdf in perl

Ich versuche, einige Informationen aus einer PDF-Datei zu extrahieren. Ich versuche zu verwenden getpdftext.pl von der CAM::PDF Modul. Wenn ich einfach $~ getpdftext.pl sample.pdf wird ein Text der PDF-Datei auf stdout ausgegeben.

Aber ich denke darüber nach, dies in eine Textdatei zu schreiben und in Perl nach erforderlichen Feldern zu parsen. Kann mir bitte jemand sagen, wie das geht?

Aber wenn ich versuche, anzurufen pdftotext.pl In meinem Perl-Skript erhalte ich eine No such file Fehler.

#Programm zum Extrahieren von Text aus pdf und Speichern in einer Textdatei

use PDF;

use CAM::PDF;

use CAM::PDF::PageText;

use warnings;

use IPC::System::Simple qw(system capture);

$filein = 'sample.pdf';                                                                   
$fileout = 'output1.txt';  

open OUT, ">$fileout" or die "error: $!";

open IN, "getpdftext.pl $filein" or die "error :$!" ;

while(<IN>)
{
    print OUT $fileout;
}

3voto

AFresh1 Punkte 406

Es wäre wahrscheinlich einfacher, getpdftext.pl so zu gestalten, dass es das tut, was Sie wollen.

Mit dem Code aus getpdftext.pl sollte dieser (nicht getestete) Code das PDF in eine Textdatei ausgeben.

my $filein = 'sample.pdf';                                                                   
my $fileout = 'output1.txt';  

my $doc = CAM::PDF->new($filein) || die "$CAM::PDF::errstr\n";
open my $fo, '>', $fileout or die "error: $!";

foreach my $p ( 1 .. $doc->numPages() ) {
    my $str = $doc->getPageText($p);
    if (defined $str) {
       CAM::PDF->asciify(\$str);
       print $fo $str;
    }
}

close $fo;

0voto

mob Punkte 113680

Siehe perldoc -f open . Sie möchten den Ausgabestrom eines externen Befehls als Eingabestrom in Ihrem Perl-Skript verwenden. Das ist es, was die -| Modus ist für:

open my $IN, '-|', "getpdftext.pl $filein" or die $!;
while (<$IN>) {
   ...
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X