THotPDF.AddLoadedSignedSignatureField Method

Dodaje do załadowanego dokumentu pole podpisu gotowe do podpisania. Pole zawiera słownik podpisu z zarezerwowanym miejscem na /ByteRange i /Contents, dzięki czemu SignPDFWithPFX, PreparePDFForSigning i InsertSignatureHex mogą je podpisać po zapisaniu dokumentu. W połączeniu z BeginIncrementalUpdate jest to sposób, w jaki już podpisany PDF otrzymuje drugi podpis

Deklaracja

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;

Jednostka

HPDFDoc

Parametry

NazwaPrzeznaczenie
PageIndexIndeks załadowanej strony pokazującej widget podpisu liczony od zera
X1, Y1, X2, Y2Prostokąt widgetu w przestrzeni użytkownika PDF (punkty, początek układu w lewym dolnym rogu), szerokość i wysokość muszą być dodatnie
AFieldNameNazwa nowego pola podpisu, nie może być pusta ani już istnieć w dokumencie
ContentsBytesBajty zarezerwowane na podpis CMS (zapisywane jako dwukrotnie więcej cyfr szesnastkowych), muszą pomieścić kompletny podpis, łącznie z certyfikatami i ewentualnym tokenem znacznika czasu
SubFilterFormat podpisu, na przykład adbe.pkcs7.detached albo ETSI.CAdES.detached
Reason, Location, ContactNameOpcjonalne wpisy /Reason, /Location i /ContactInfo słownika podpisu

Wartość zwracana

Zwraca indeks nowego pola formularza albo -1, gdy PageIndex jest poza zakresem

Uwagi dotyczące użycia

Przykład

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

Powiązane API