12

デジタル署名付きの PHP で PDF ファイルを生成することは可能ですか? オープンソース ソリューションが推奨されます。

4

3 に答える 3

25

バージョン 5.5.001 (2010-06-23 リリース) 以降の TCPDF は、生成された PDF ドキュメントに署名できます。

また、透明な署名長方形フィールドを任意のビットマップ/テキストの上に配置できるため、署名フィールドをクリックすると署名パネルが表示されます - クールな機能です。seta-PDF署名者も同じですが、支払う必要があります:-)

TCPDF が FPDI ブリッジで拡張されている場合、PDF バージョン 1.7 までの既存のドキュメントを解析し、X.509 証明書で署名することもできます。それ自体で生成された PDF ドキュメント、または他の PHP PDF ツール (FPDF、DOM PDF、mPDF など) によって作成された PDF ドキュメントを 100% 解析し、PDF 署名を計算し、同じ署名付き PDF ドキュメントを書き戻すことができます。

ただし、他の (バイナリなどの) PDF ジェネレーター (iText など) で作成された PDF ドキュメントを解析する場合、ドキュメントを解析できない場合があります。別の PDF パーサーを試すこともできます (私は Zend Framework PDF パーサーを試す価値があることしか知りません)。ただし、PHP は PDF 定義の実装を制限しているため、PDF ドキュメントの構造全体を読み取ったり逆コンパイルしたりできない場合があります (PHP は主要なテキスト スクリプト言語であり、バイナリを処理できません)。簡単に詰め込むので、これが制限の根源です)。

したがって、Web サイトで PDF を生成することを検討している場合は、PDF ドキュメントの作成と署名に同じツールを使用してください。ここでお勧めできるのは、TCPDF です。まだ聞いたことがない場合は、Google で検索してください (:-o)

現時点では、DOM PDF が PDF ドキュメントに署名できるとは思いません。

VersyPDF は .dll/.so PHP 拡張機能であり、サポートが非常に悪く、高価で、文書化も不十分です。エラー メッセージのないサイレント クラッシュが発生する場合があります... また、現在標準となっている 256 ビット AES 証明書もサポートしていません。また、開発者として 32 ビット マシンで実行し、実稼働環境で 64 ビット マシンを実行している場合は、再コンパイルされた別のバージョンを取得する必要があります。VersyPDF を TCPDF に置き換えました。パフォーマンスの低下はほとんど見られず、300 ~ 600 kB の PDF 署名済みドキュメントを動的に生成できます。それ以外の場合は、VersyPDF には多少優れた API があり、パフォーマンスも良好です。私の経験から推測すると、それはワンマンショーです...

ルボスに乾杯

于 2010-09-06T18:38:54.293 に答える
4

VersyPDF PHP ライブラリ(商用) もドキュメントに署名します

オープン ソースのiText Java ライブラリとPHP-Java ブリッジを使用して通信を行うこともできます。これに関するiText FAQを参照してください

iText は、自己署名、veriSign プラグイン、または Windows 証明書セキュリティによってドキュメントに署名できます。過去に Java プロジェクトで使用したとき、文書への署名は対処にすぎず、通常は 100 行未満で済みました。最も難しいのは、署名するための適切な証明書を取得することです。

于 2009-04-14T00:52:01.423 に答える
0

SetaPDF-Signer というものがあります。無料ではありませんが :S

SetaPDF-Signer API を使用すると、PHP 開発者は純粋な PHP で PDF ドキュメントにデジタル署名できます。

于 2009-04-13T23:30:19.513 に答える