0

PDFからテキストを抽出する目的で、perlを使用してpdftotextを利用します。よく働く。私の問題は、私が読んでいるpdfが複数ページであり、各ページの上部にある特定の行のデータを探していることです。次のコードは、両方のページの内容全体を 1 つのファイルにダンプします。定数データ (ページの上部) の後のデータ長が変化するため、ページ 2 からデータを正確に引き出すことができません。最初に pdftotext または他のユーティリティ/モジュールを使用して各ページをステップ実行し、次に pdftotext を呼び出すにはどうすればよいですか?各ページ個別に?

#!/usr/bin/perl
print "Content-type: text/html\n\n";

print "\n<style>
div.line {width:100%;white-space:nowrap;}
div.line div {width:80px;float:left;}
</style>";

my $i=0;
open FILE, "pdftotext -layout my_multi_page_pdf.pdf - |";

while (<FILE>) {

    $i++;
    my ($line) = $_;
    print "\n<div class=\"line\"><div>$i</div>$line</div>";
}
close FILE;
4

1 に答える 1

1
use strict;
use warnings;

my $i       = 0;
my $pageNum = 1;

open my $fh, "pdftotext -layout multipage.pdf - |" or die $!;
print "---------- Begin Page $pageNum ----------\n";

while ( my $line = <$fh> ) {
    if ( $line =~ /\xC/ ) {
        print "\n---------- End Page $pageNum ----------\n";
        $pageNum++;
        print "---------- Begin Page $pageNum ----------\n";
    }

    $i++;
    print "\n<div class=\"line\"><div>$i</div>$line</div>";
}

close $fh;
于 2012-10-11T19:32:16.390 に答える