THotPDF.AddLoadedSignedSignatureField Method

Fügt einem geladenen Dokument ein signaturbereites Signaturfeld hinzu. Das Feld trägt ein Signature Dictionary mit reserviertem /ByteRange- und /Contents-Platz, sodass SignPDFWithPFX, PreparePDFForSigning und InsertSignatureHex es signieren können, sobald das Dokument gespeichert ist. Zusammen mit BeginIncrementalUpdate erhält ein bereits signiertes PDF auf diese Weise eine zweite Signatur

Deklaration

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;

Unit

HPDFDoc

Parameter

NameZweck
PageIndexNullbasierter Index der geladenen Seite, die das Signatur-Widget zeigt
X1, Y1, X2, Y2Widget-Rechteck im PDF-Benutzerkoordinatensystem (Punkte, Ursprung unten links); Breite und Höhe müssen positiv sein
AFieldNameName des neuen Signaturfelds; er darf nicht leer sein und darf im Dokument noch nicht existieren
ContentsBytesFür die CMS-Signatur reservierte Bytes (geschrieben als doppelt so viele Hex-Ziffern); sie müssen die vollständige Signatur aufnehmen, inklusive Zertifikate und ggf. Timestamp-Token
SubFilterSignaturformat, zum Beispiel adbe.pkcs7.detached oder ETSI.CAdES.detached
Reason, Location, ContactNameOptionale Einträge /Reason, /Location und /ContactInfo des Signature Dictionary

Rückgabewert

Gibt den Index des neuen Formularfelds zurück oder -1, wenn PageIndex außerhalb des gültigen Bereichs liegt

Verwendungshinweise

Beispiel

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');

Verwandte APIs