使用perl api pdf :: api2从pdf中读取文本时出错

时间:2010-11-03 20:28:23

标签: perl

这是使用perl

读取pdf文本的代码
#!/usr/bin/perl

use PDF::API2;

    $pdf = PDF::API2->new;
    $pdf = PDF::API2->open('01443325.pdf');
    $page = $pdf->page;
    $pagenum=10;
    $pdf->stringify;

    $page = $pdf->openpage($pagenum);

    print $page;

运行此代码时,我没有得到任何输出。如何删除错误?

1 个答案:

答案 0 :(得分:3)

当您在上面运行$ pdf-> stringify时,它会将该文件的内容作为字符串返回,但之后您不会对其执行任何操作。但是,如果您要打印它,它将不会为您提供您所追求的文本表示,因为它只是字符串中的原始PDF字节。

同样,将$ pagenum设置为10对程序的其余部分没有影响,因为变量没有以任何方式链接到$ pdf或$ page对象。

我认为最简单的选择是不要尝试使用PDF :: API2,而是先查看是否可以先从xpdf或poppler运行pdftotext,然后再读取输出。

如果没有,那么在Perl Monks页面http://www.perlmonks.org/?node_id=810721上有一些建议,在Google的“perl extract pdf pdf”中有更多建议。在How can I extract text from a PDF file in Perl?,甚至还有一个SO问题。

祝你好运!

相关问题