Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用CAM::PDF For Perl-我可以从(v1.7)受密码保护的PDF文件中读取文本吗?_Perl_Cam Pdf - Fatal编程技术网

使用CAM::PDF For Perl-我可以从(v1.7)受密码保护的PDF文件中读取文本吗?

使用CAM::PDF For Perl-我可以从(v1.7)受密码保护的PDF文件中读取文本吗?,perl,cam-pdf,Perl,Cam Pdf,我注意到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\PW

我注意到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文件本身的属性包括:

  • 版本:1.7
  • 安全方法:密码保护
  • 打印:不允许
  • 填写表格:不允许
  • 评论:不允许
  • 管理页面:不允许
  • 修改文档:不允许
  • 内容复制:不允许
  • 提取内容:不允许
  • 签名:不允许
值得一提的是,该PDF文件似乎是使用AdobePDFMaker10.1forExcel创建的

有什么好处?我这样做对吗?还是PDF与CAM::PDF不兼容

真诚地,
困惑

我是CAM::PDF的作者。它可能是CAM::PDF不支持的较新的PDF功能。我在PDF 1.2版中编写了加密支持,此后几乎没有更新。因此,这很可能不是您的错,而是库的一个限制。

CAM::PDF文档声称它与w/PDF v1.5基本兼容。PDF版本1.6和1.7都添加了加密选项。这可能是个问题。请阅读文档中的“数据操作”部分。确定。很高兴知道-直接从源头上说。我(不情愿地)在pdftotext.exe中编织来处理转换,但是从Perl中专门处理这一部分显然要酷得多。