0

使用 perl 来利用 pdftotext 从 pdf 中提取文本。效果很好。我的问题是我正在阅读的 pdf 是多页的,我正在寻找每页顶部特定行的数据。以下代码将两个页面的全部内容转储到一个文件中。因为常量数据(在页面顶部)之后的数据长度会发生变化,所以我无法准确地从第 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 回答