在perl中使用pdf readonly

时间:2012-05-25 12:45:32

标签: perl pdf cam-pdf

我的.pdf包含很多我不希望用户能够编辑的表单。

尝试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不可编辑。

2 个答案:

答案 0 :(得分:0)

对于遇到此问题的其他人,我可以使用CAM :: PDF将PDF设为只读:

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

我相信如果'copy'pref设置为true,用户仍然可以编辑字段,因为他们仍然可以选择“保存副本”但不能覆盖原始字段。

在我的情况下,我还必须执行以下操作以使表单字段正确填写:

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

答案 1 :(得分:-1)

如果您只想阅读,请尝试此操作。

chmod 0555, "example.pdf";