dompdf - создайте pdf файл один раз, но сделайте невозможным его повторное открытие позже? - PullRequest
0 голосов
/ 07 марта 2012

Я использую dompdf для создания PDF-файлов. Но что я хочу сделать, так это создать один раз файл, чтобы пользователь мог видеть его содержимое, но защитить файл, чтобы пользователь, закрыв его, не смог открыть его позже. Это возможно, ИЛИ я должен использовать другую программу?

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Это действительно невозможно.Похоже, что вы хотите, чтобы документ был уничтожен после первого чтения (стиль «Миссия невыполнима»).Это не так, как работает интернет.Файл, к которому можно получить доступ через Интернет, может быть легко загружен и открыт в автономном режиме.

Конечно, есть хаки, но они могут быть задействованы для реализации.Однажды я создал Flash Viewer, который загрузил другой файл, который содержал фактический документ.Любой технически подкованный пользователь все же может получить исходный документ, изучив сетевой трафик, но ваш обычный нетехнический пользователь не знает, как это сделать.

У вас есть варианты включения ограничений в PDF,но пользователь всегда сможет сохранить его и открыть его позже.Вероятно, вы хотите реализовать ограничения на документ и загрузить его в iframe , чтобы предотвратить сохранение.

Вы можете реализовать ограничения печати / копирования следующим образом:

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();
$dompdf->get_canvas()->get_cpdf()->setEncryption('', 'ownerpass', array());
$dompdf->stream();

Параметры setEncryption:

  1. строка, пароль пользователя (применяются ограничения)
  2. строка, пароль владельца (разблокирует документ) * массив 1017 *
  3. , строки, указывающиеразрешенные действия при вводе пароля пользователя (например, печать, копирование).Если оставить это поле пустым, пользователь может сохранить только документ.
0 голосов
/ 07 марта 2012

PDF - это документ, в нем нет инструкций по написанию сценариев, возможно, вы хотите встроить его в исполняемый файл, извлечь из него исполняемый файл и продолжать проверять бит блокировки, как только станет ясно, удалите его.

...