THotPDF.AddLoadedSignedSignatureField メソッド

署名準備の整った署名フィールドをロード済みドキュメントに追加します。フィールドは予約済みの /ByteRange と /Contents 空間を備えた署名辞書を持つため、ドキュメントの保存後すぐに SignPDFWithPFX、PreparePDFForSigning、InsertSignatureHex で署名できます。BeginIncrementalUpdate と組み合わせるのが、署名済み PDF に 2 本目の署名を施す方法です

宣言

function AddLoadedSignedSignatureField(PageIndex: Integer; X1, Y1, X2, Y2: Single;
  const AFieldName: AnsiString; ContentsBytes: Integer = 8192;
  const SubFilter: AnsiString = 'adbe.pkcs7.detached';
  const Reason: AnsiString = ''; const Location: AnsiString = '';
  const ContactName: AnsiString = ''): Integer;

ユニット

HPDFDoc

パラメータ

名前目的
PageIndex署名ウィジェットを表示するロード済みページのゼロベースインデックス
X1, Y1, X2, Y2PDF ユーザー空間(ポイント、原点は左下)におけるウィジェット矩形。幅と高さは正の値である必要があります
AFieldName新しい署名フィールドの名前。空でなく、ドキュメントに未登録の名前である必要があります
ContentsBytesCMS 署名のために予約するバイト数(2 倍の 16 進桁として書き込まれます)。証明書やタイムスタンプトークンを含む署名全体を収める必要があります
SubFilter署名形式。たとえば adbe.pkcs7.detached や ETSI.CAdES.detached です
Reason, Location, ContactName署名辞書の省略可能な /Reason、/Location、/ContactInfo エントリ

戻り値

新しいフォームフィールドのインデックスを返します。PageIndex が範囲外の場合は -1 になります

使用上の注意

例

PDF := THotPDF.Create(nil);
try
  PDF.BeginIncrementalUpdate('Signed.pdf');
  PDF.AddLoadedSignedSignatureField(0, 300, 120, 500, 160, 'Approver', 8192,
    'adbe.pkcs7.detached', 'Approved');
  PDF.SaveIncrementalUpdate('Prepared.pdf');
finally
  PDF.Free;
end;
// Signs the reserved field; the first signature stays valid
THotPDF.SignPDFWithPFX('Prepared.pdf', 'SignedTwice.pdf', 'Signer.pfx', 'password');

関連 API