Сделать PDF только для чтения в Perl
У меня есть.pdf, который содержит много форм, которые я не хочу, чтобы пользователь мог редактировать.
Пытался CAM::PDF
но я не могу загрузить свой PDF-файл в это. Я получаю только страницу с флажками, но без текста
Вот как должен выглядеть PDF-файл:
Вот как файл выглядит из CAM::PDF
Кто-нибудь знает, что я делаю не так? Если я удаляю строку setPrefs, я получаю правильный 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 ответа
Для всех, кто столкнулся с этой проблемой, я смог использовать CAM::PDF, чтобы сделать PDF доступным только для чтения:
$file->sefPrefs(undef, undef, 1, 0, 0, 0);
Я полагаю, что если pref 'copy' установлен в true, пользователь все равно может редактировать поля, потому что у них все еще есть возможность "сохранить копию", но не перезаписывать оригинал.
В моем случае я также должен был сделать следующее для правильного заполнения полей формы:
$file->getFormFieldList; # I think this forces the fields to be cached but it wouldn't work without
...
$file->clean;
Если вы хотите только чтение, попробуйте это.
chmod 0555, "example.pdf";