#!/usr/bin/perl -wuse CAM::pdf;my $pdf = CAM::pdf->new('1950-01-01.pdf');print $pdf->numPages()," pages\n\n";my $text = $pdf->getPageText(1);print $text,"\n";
我尝试在this pdf file上运行它.Perl没有报告错误.第一个印刷声明有效;它打印“2页”,这是本文档中正确的页数.
下一个print语句不会返回任何可读的内容.以下是Emacs中输出的内容:
2 pages^A^B^C^D^E^C^F^D^G^H^D^A^K^L^C^M^D^N^C^M^O^D^P^C^Q^Q^C ^D^R^K^M^O^D ^A^B^C^D^E^F^G^G^H^E^K^L^M^N^E^O^P^E^O^Q^R^S^E.... more lines with similar codes ....
有什么我可以做的工作吗?我不太了解pdf文件,但我认为,因为我可以使用Acrobat轻松复制和粘贴pdf文件中的文本,它必须被识别为文本而不是图像,所以我希望这意味着我可以提取它与Perl.
任何指导都将非常感谢.
解决方法 pdf可以有不同类型的内容.例如,pdf可能根本没有任何可读文本,只有位图和图形内容.您链接到的pdf中包含压缩数据.使用文本编辑器打开它,您将看到内容位于“/ Filter / FlateDecode”块中.也许 CAM::PDF不支持这一点. Google FlateDecode提供了一些想法.进一步研究pdf,我发现它还使用嵌入式字体子集,并使用自定义编码.即使CAM :: pdf处理压缩,自定义编码也可能正在甩掉它.这可能会有所帮助:Web page from a software company,describing the problem
总结以上是内存溢出为你收集整理的无法从Perl中的pdf中读取文本全部内容,希望文章能够帮你解决无法从Perl中的pdf中读取文本所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)