THotPDF.AddLoadedSignedSignatureField Method

Ajoute à un document chargé un champ de signature prêt à signer. Le champ embarque un dictionnaire de signature avec l'espace /ByteRange et /Contents réservé, de sorte que SignPDFWithPFX, PreparePDFForSigning et InsertSignatureHex peuvent le signer une fois le document enregistré. Combinée à BeginIncrementalUpdate, c'est la façon dont un PDF déjà signé reçoit une seconde signature

Déclaration

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

Paramètres

NomObjectif
PageIndexIndex à base zéro de la page chargée qui affiche le widget de signature
X1, Y1, X2, Y2Rectangle du widget dans l'espace utilisateur PDF (points, origine en bas à gauche) ; la largeur et la hauteur doivent être positives
AFieldNameNom du nouveau champ de signature ; il ne doit pas être vide et ne doit pas déjà exister dans le document
ContentsBytesOctets réservés à la signature CMS (écrits avec deux fois plus de chiffres hexadécimaux) ; ils doivent contenir la signature complète, certificats et jeton d'horodatage inclus
SubFilterFormat de signature, par exemple adbe.pkcs7.detached ou ETSI.CAdES.detached
Reason, Location, ContactNameEntrées optionnelles /Reason, /Location et /ContactInfo du dictionnaire de signature

Valeur de retour

Renvoie l'index du nouveau champ de formulaire, ou -1 lorsque PageIndex est hors limites

Notes d'utilisation

Exemple

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 associées