Создать PDF с цифровой подписью - PullRequest
10 голосов
/ 14 апреля 2009

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

Ответы [ 3 ]

22 голосов
/ 06 сентября 2010

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 голосов
/ 14 апреля 2009

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

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

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

0 голосов
/ 14 апреля 2009

Есть что-то, что называется SetaPDF-Signer. Хотя это не бесплатно:

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

...