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

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

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, если вы играете с ним и получаете хорошую производительность. Я думаю, что это однолюдное шоу …

Cheers Lubos

Библиотека PHP VersyPDF (Commercial) также будет подписывать документы

Также возможно использовать библиотеку Java с открытым исходным кодом iText и модем PHP-Java, чтобы обеспечить связь. См. FAQ по iText

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

Есть что-то под названием SetaPDF-Signer. Это не бесплатно: S

API-интерфейс SetaPDF-Signer позволяет разработчикам PHP цифровой подписывать PDF-документы в чистом PHP.

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