2010-11-03 27 views
1

这是用perl错误而读出文本用perl API PDF概率密度:: API2

#!/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; 

我没有得到任何输出,当我运行这段代码阅读PDF文本的代码。如何删除错误?

+0

尝试运行'print $ pdf->页面,“\ n”'在那里查看模块认为您拥有多少页面。另外,你确定这个文件存在吗,用'print -e'01443325.pdf'测试? “文件存在\ n”:“文件不存在!\ n”' – 2010-11-03 21:01:56

回答

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 text from pdf”的建议。在How can I extract text from a PDF file in Perl?甚至有一个以前的SO问题。

祝你好运!