Сделать 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";
Другие вопросы по тегам