Security」ソフトは、PDF文書への電子署名と暗号化の機能をアプリケーションに追加します。Securityは、電子署名の様々なタイプを適用します。(CRLやOCSPのデータ)の埋め込みや、RFC3161タイムスタンプを追加します。Securityは、証明書のルート(CA、中間)証明書や失効情報をチェックすることで電子署名の有効性を検証します。タイムスタンプによる検証も行います。電子署名しないでタイムスタンプだけを埋め込めます。フラグPDF文書は、それが重要な場面で利用される場合、データの不正なアクセスや改竄から保護するために、暗号化やセキュリティ(アクセス許可)フラグなどを設定します。機能概要はこちらです。サンプルを公開しています。無償評価版(リンク先は英語)はこちらです。ダウンロード手順を参照してダウンロードください。ファイルをダウンロードしてから、インストールもしくは適当なフォルダーに解凍します。以下のようなフォルダーができあがりますので、適宜ご利用ください。bin/PdfSecureAPI.dllをPATHまたはjava.library.pathにコピーしてください。無償評価版と共にダウンロードしたライセンスキーをbin/LicenseManager.exeを使って登録してください。ライセンスキーの登録方法はこちらです。PDFに複数の署名を適用するPDF/A規格に準拠していて、変更できません。二つの署名が施されています。Security」電子署名ライブラリ(API)を使って、左のようにPDF/A文書に複数の電子署名を適用します。解説とサンプルを参照してください。Readerでの署名検証方法はこちらです。複数の電子署名をPDF文書に適用するには、電子署名の都度PDF文書を作成(書き出し)しなければなりません。Securityには、メモリ上に(ファイルではなく)PDF文書を出力する機能を備えています。この機能によって、複数の電子署名をより簡単に追加できます。複数の署名は以下の手順に従って適用します。PDF文書をハンドルするインスタンスを生成し、電子署名を施すPDF文書をファイルから読み込む。電子署名のインスタンスを生成し、署名の詳細を指定する。ファイルから読み込んだPDFのインスタンスに準備した電子署名のインスタンスで電子署名を追加する。PDFのインスタンスをメモリに出力する。ファイルから作成したPDFのインスタンスとは別のPDFインスタンスを生成し、そこにメモリ上のPDFを読み込む。2番目の電子署名のインスタンスを生成し、署名の詳細を指定する。メモリ上のPDFのインスタンスに、2番目の電子署名インスタンスで電子署名を追加する。3つ以上の電子署名を追加する場合は、手順4と同様に電子署名を追加したPDFのインスタンスをメモリ上に出力し、それを読み込んで電子署名の追加を繰り返す。最後の署名が追加されたPDFのインスタンスを、目的の名前でファイルに出力する。PDFインスタンス生成PDF文書のインスタンスを生成して、そこにファイルからPDF文書を読み込みます。インスタンスを生成します。復号のパスワード暗号化していない場合は、nullを指定します。引数に応じてCRLなどをキャッシュしないようにします。電子署名のインスタンスを生成し、電子証明書や印影その表示位置などを指定します。Name、所有者名)を指定します。詳しく証明書を指定する場合や、署名領域の内容を指定する場合は以下のコードを追加します。電子署名に対応する電子証明書の発行者を指定します。電子証明書の所有者名だけで証明書が特定できる場合は、この指定は必要ありません。電子証明書をシリアル番号で指定する場合は、所有者の指定が必須となります。電子署名に対応する電子証明書を指定するために、シリアル番号と共に指定します。電子署名の理由を指定します。電子署名の場所を指定します。電子署名の領域を左下(x1,Y1)と右上(x2,y2)で指定します。単位はポイント(1ポイント=1/72インチ)です。[省略可]A4サイズの場合は、左下(0,0)、右上(595,842)となります。署名領域に画像を貼り付けずに枠線や背景色を指定する場合は、以下のコードを追加します。電子署名領域に画像を指定しなかった場合に表示される境界線の色を指定します。電子署名領域に画像を指定しなかった場合に、その領域が塗りつぶされる色を指定します。電子署名の領域に貼り付ける画像を指定します。電子署名領域を表示するページを指定します。[省略可]-1を指定すると、最終のページに表示されます。省略した場合や存在しないページを指定した場合も、最終のページに表示されます。指定のタイムスタンプを電子署名と共に埋め込みます。[省略可]署名領域に文字列を表示させたくない場合は、以下のコードを追加します。電子署名領域に表示される署名者の情報を指定する文字列にします。表示位置と表示する文字列を以下の形式に従って指定します。電子署名領域に表示される署名者以外の情報を指定する文字列にします。[省略可]注意)指定したタイムスタンプのURLは、テスト用のタイムスタンプを発行するTSAです。このTSAは無償・無登録で自由に使えますが、負荷によってはレスポンスが低下します。PDFに電子署名を追加PDFのインスタンスに電子署名を追加します。引数に指定した電子署名をPDFに追加します。電子署名されたPDFをメモリに出力します。PDFをメモリに出力します。以下のとおり引数を指定します。ユーザーパスワードを指定します。nullを指定すると、既定のパスワードが使われます。オーナーパスワードを指定します。nullを指定すると、ユーザーパスワードが使われます。パーミッション・フラグを指定します。PDF/A文書に電子署名する場合は、PERMISSION.ePermNoEncryptionを指定します。暗号化の鍵長を指定します。暗号化フィルターを指定します。ストリーム暗号化フィルターを指定します。新たなPDFのインスタンスを生成し、メモリ上のPDFを読み込みます。新たなPDFのインスタンスを生成します。メモリに格納されたPDF文書をバイトストリームとして読み出します。メモリ中のPDF文書を読み込みます。)で受け取ったバイトストリームを指定します。PDFを暗号化した際のオーナーまたは、ユーザーパスワードを指定します。暗号化していない場合は、nullを指定します。引数に応じてCRLなどをキャッシュしないようにします。次の電子署名インスタンスを生成さらに追加する電子署名のインスタンスを生成し、署名の詳細を設定します。設定は、手順2と同様です。次の電子署名を適用する次の電子署名を適用します。電子署名を追加する場合さらに電子署名を追加するには、手順4と同様にして結果をメモリに出力します。出力したPDFをさらに手順5と同様に別のPDFインスタンスに格納します。電子署名のインスタンスを準備し(手順6)、PDFに署名を追加(手順7)を繰り返します。電子署名が追加されたPDFをファイルに出力します。署名されたPDFをファイルに格納します。出力するファイル名を指定します。宛てにお送りください。質問のページからお送りいただくようお願いします。ご要望も承っております。)(記載の会社名および製品名は、各社の登録商標および商標です。体験版を無償で提供しています。ライブラリ作成します。お問い合わせください。