Metoda THotPDF.AddLoadedSignedSignatureField

Přidá do načteného dokumentu pole podpisu připravené k podpisu. Pole nese slovník podpisu s vyhrazeným prostorem pro /ByteRange a /Contents, takže SignPDFWithPFX, PreparePDFForSigning a InsertSignatureHex ho mohou podepsat, jakmile se dokument uloží. V kombinaci s BeginIncrementalUpdate tak již podepsané PDF dostane druhý podpis

Deklarace

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;

Jednotka

HPDFDoc

Parametry

NázevÚčel
PageIndexIndex počítaný od nuly pro načtenou stránku, na které se zobrazuje widget podpisu
X1, Y1, X2, Y2Obdélník widgetu v uživatelském prostoru PDF (body, počátek vlevo dole); šířka a výška musí být kladné
AFieldNameNázev nového pole podpisu; nesmí být prázdný a nesmí už v dokumentu existovat
ContentsBytesBajty vyhrazené pro podpis CMS (zapisují se jako dvojnásobný počet hex číslic); musí pojmout kompletní podpis, včetně certifikátů a případného tokenu časového razítka
SubFilterFormát podpisu, například adbe.pkcs7.detached nebo ETSI.CAdES.detached
Reason, Location, ContactNameVolitelné položky /Reason, /Location a /ContactInfo slovníku podpisu

Návratová hodnota

Vrací index nového formulářového pole, nebo -1, když je PageIndex mimo rozsah

Poznámky k použití

Příklad

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

Související API