2012-05-25 36 views
0

我有一个.pdf包含很多表单,我不希望用户能够编辑。使pdf只读perl

已尝试CAM::PDF,但我无法管理加载我的PDF文件到此。我只能获得复选框的网页,但没有文字

这是PDF应该如何看起来像:

-

这是文件怎么看起来像CAM::PDF

-

有谁知道我做错了什么?如果我删除了setPrefs行,我会得到没有我想要的设置的rigth pdf。

示例代码:

my $file = CAM::PDF->new($pdf_file_path); 
$file->sefPrefs('', '', 1, 0, 1, 0); 
$file->output('C:\temp\campdf.pdf'); 
$file->save(); 

编辑:使用PDFTK,这有一个选项,以扁平化的PDF格式,使我的PDF格式不可编辑。

回答

-1

如果你想只读试试这个。

chmod 0555, "example.pdf"; 
+0

我已经试过这一点。我仍然可以在pdf中进行更改并使用错误的信息进行打印= /这只能帮助我制作用户或覆盖 – Onionhill

+0

当您说“我不希望用户能够编辑”时,您的意思是您不希望他们能够在表单中输入任何内容或者是否可以编辑表单标签? – iCanHasFay

+0

我的意思是说,我的Perl脚本正在填写与信息的形式。这个信息不应该是可编辑的。 – Onionhill

0

为别人这个问题,我能够使用CAM :: PDF制作PDF只读:

$file->sefPrefs(undef, undef, 1, 0, 0, 0); 

我相信,如果“复制” PREF设置为true ,用户仍然可以编辑这些字段,因为他们仍然可以选择“保存副本”,但不能覆盖原件。

在我来说,我也不得不做到以下几点,以获得表单字段正确填写:

$file->getFormFieldList; # I think this forces the fields to be cached but it wouldn't work without 
... 
$file->clean;