Создание PDF с цифровой подписью

Возможно ли сгенерировать PDF файл в PHP с цифровой подписью? Предпочтительным является решение с открытым исходным кодом.

Ответ 1

TCPDF, начиная с версии 5.5.001 (выпущенный 2010-06-23), может подписывать сгенерированные PDF-документы.

Он также может помещать прозрачное поле прямоугольника подписи в любое растровое изображение/текст, поэтому при нажатии на поле подписи появляется панель подписи - крутая функция. То же самое делает подписчик seta-PDF, однако вам нужно заплатить: -)

Если TCPDF расширен с мостом FPDI, он также может анализировать уже существующие документы с версией PDF до версии 1.7 и подписывать его с сертификатом X.509. Он может на 100% анализировать PDF-документы, созданные самим собой или pdf-документ, который был продиктован любым другим инструментом PHP PDF (например, FPDF, DOM PDF, mPDF,..), вычисляет подпись PDF и записывает один и тот же подписанный документ PDF.

Если, однако, вы хотите разобрать PDF-документ, созданный другим (например, двоичным) PDF-генератором (iText,..), возможно, он не сможет проанализировать документ. Вы можете попробовать другой синтаксический анализатор PDF (я знаю, что Zend Framework PDF Parser стоит попробовать), однако он не может читать и декомпилировать всю структуру документа PDF, так как PHP имеет ограниченную реализацию определений PDF (PHP является основным языком текстовых скриптов, не может обрабатывать двоичные файлы легко, так что это корень ограничения).

Итак, если вы думаете о создании PDF на своем веб-сайте, используйте тот же инструмент для создания PDF-документа и подписи - лучше всего я могу рекомендовать здесь TCPDF. Ищите его по Google, если вы еще не слышали об этом (: -o)

В настоящее время я не думаю, что DOM PDF может подписывать документы PDF.

VersyPDF - это .dll/.so расширение PHP и поддерживается ОЧЕНЬ ХОРОШО, дорогое и действительно НЕОБХОДИМО документировать. Вы можете столкнуться с бесшумными сбоями без сообщений об ошибках... Он также не поддерживает 256-битные сертификаты AES, которые теперь являются стандартными. И вам нужно получить другую перекомпилированную версию, если вы работаете на 32-битных машинах в качестве разработчиков и 64-битных машин в производстве. Мы заменили VersyPDF на TCPDF. Исполнение штрафа вряд ли заметно, мы можем генерировать динамически 300 - 600 КБ PDF подписанных документов. Жаль, но иначе у VersyPDF есть несколько приятный API, если вы играете с ним и получаете хорошую производительность. Это однолюдное шоу, которое, как я думаю, по моему опыту...

Приветствия Любош

Ответ 2

Библиотека PHP VersyPDF (Коммерческая) также подпишет документы

Также можно использовать библиотеку open iText и PHP-Java bridge, чтобы разрешить общение. Смотрите FAQ iText на этом

iText может подписывать документы самоподписанием, подключаемый модуль veriSign или Windows Certificate Security. Когда я использовал его в прошлом в проектах Java, подписи документов просто справлялись с примерами и обычно занимали менее ста строк. Самый сложный бит - получить правильные сертификаты, чтобы подписать его.

Ответ 4

Это предложит вам попробовать DOM PDF, который предназначен для PHP5, он очень прост в использовании, хорошо документирован и доступен с открытым исходным кодом