我注意到CAM :: PDF Perl模块是为了从PDF文件中读取文本而构建的。现在我安装了CAM :: PDF v1.59。我已经成功地使用它来读取不密码保护的(v1.2)PDF文件中的文本,但当我尝试使用此文件打开(v1.7)受密码保护的PDF文件时代码...
use strict;
use warnings;
use PDF::API2;
use CAM::PDF;
use CAM::PDF::PageText;
my $file = 'C:\Users\gwilliams\Documents\PWS20130517new.pdf';
my $pdf = CAM::PDF->new($file, '-', '-', 's3cretpasswd', fault_tolerant => 1)
or die "$CAM::PDF::errstr\n";
my $pageone_tree = $pdf->getPageContentTree(1);
print CAM::PDF::PageText->render($pageone_tree);
...我收到错误消息:
Invalid xref stream: could not decode objstream 3085
PDF文件本身的属性是:
对于它的价值 - 看起来有问题的PDF是用Adobe PDFMaker 10.1 for Excel创建的。
是什么给出的?我这样做是对的 - 或者PDF与CAM :: PDF不兼容吗?
此致 混淆
答案 0 :(得分:0)
我是CAM :: PDF的作者。它可能是CAM :: PDF不支持的较新的PDF功能。我用PDF 1.2天写了加密支持,之后几乎没有更新。所以很可能这不是你的错,而是图书馆的限制。