使用perl

时间:2015-06-26 14:05:09

标签: perl pdf text

我有一个pdf文件,我想将其转换为文本文件。 我在linux命令行上尝试了perl perl getpdftotext.exe fileName.pdf,但没有任何反应。 我试过CPAN CAM::PDF但没有运气。

我收到错误

中字符串eq中未使用的值的使用

C:/Strawberry/perl/site/lib/CAM/PDF.pm line 2362

,输出文件为空。

我能够读取pdf文件中的页数。 my $num=$pdfone->numPages();返回正确的页数。 我使用的是Adobe Reader X 10.1.4版。 我也试过一个渲染器,试图获得一个页面......第二个片段 我也得到错误未初始化的值。我尝试过不同的pdf文件。 我正在使用Strawberry perl。

enter code here

use CAM::PDF;
use CAM::PDF::PageText;
use PDF::API2;
    my $pdfone = CAM::PDF->new('WFServlet.pdf');
    my $outfile = "pdfWFServeltRESULT.txt"; 
    my @lines;
    open (OUTF, ">$outfile") || die "Can not open $outfile";

    for my $page (1 .. $pdfone->numPages()) {
       my $text = $pdfone->getPageText($page);
       @lines = split (/\n/, $text);
    }
    :
    : #snippet 2
 use CAM::PDF;
 use PDF::API2;
 use CAM::PDF::PageText;
 :
 my $pageone_tree = $pdfone->getPageContentTree(1);
 my $doc->getPageText(1);
 if (defined $doc) {
    print OUTF CAM::PDF::PageText->render($doc);
 }
 if (defined $pageone_tree) {
    print OUTF CAM::PDF::PageText->render($pageone_tree);
 }

3 个答案:

答案 0 :(得分:2)

I'm the author of CAM::PDF and I heartily recommend using a different tool for this task. :-) I wrote the text extraction as a fun experiment and quickly discovered that it's a very hard problem to get right.

答案 1 :(得分:0)

您想使用Perl的原因是什么?您可以使用许多其他pdftotext工具,这将更好地完成这项工作。试试poppler-utils。可用的最佳pdf转换工具之一。

答案 2 :(得分:0)

Try Apache Tika.我刚开始使用它来为我正在开发的小型搜索引擎提取文本。到目前为止它一直很好。

perl代码就像这样...

my $text = `java -jar /some/path/tika-app-1.8.jar --text '/some/file'`