HPDFWriteHeadlessSignatureReservation

Les valeurs optionnelles de THPDFHeadlessSignatureMetadata deviennent des entrées Unicode Reason, Location, ContactInfo et Name ; le même StringEncoder s'applique aux noms de verrous de champs et aux métadonnées avant l'écriture du moindre octet

function HPDFWriteHeadlessSignatureReservation(Target: TStream;
  ObjectNumber, Generation, ReservedCMSBytes, MaxObjectBytes: Integer;
  CAdES: Boolean = False; CertificationPermission: Integer = 0;
  CatalogObjectNumber: Integer = 0; CatalogGeneration: Integer = 0;
  FieldLock: PHPDFHeadlessFieldLock = nil;
  StringEncoder: THPDFHeadlessPolicyStringEncoder = nil;
  StringEncoderContext: Pointer = nil;
  Metadata: PHPDFHeadlessSignatureMetadata = nil;
  DocumentTimestamp: Boolean = False): THPDFHeadlessSignatureReservation;

Écrit un vrai dictionnaire de signature indirect avec des slots ByteRange numériques fixes et une réservation Contents hexadécimale remplie de zéros

L'appelant détient le stream de sortie et doit fournir un numéro d'objet positif, une génération de 0 à 65535, une réservation DER positive et un budget d'octets d'objets

La fonction vérifie la taille complète du dictionnaire avant d'écrire ou d'allouer la réservation et remplit son payload hexadécimal en chunks bornés

Définissez CAdES=true pour ETSI.CAdES.detached ; le défaut écrit adbe.pkcs7.detached

Fournissez une référence Catalog valide et une permission de certification de 1 à 3 pour émettre une transform DocMDP ; un verrou de champ optionnel émet sa véritable transform FieldMDP dans le même tableau Reference

Les noms de verrous de champs sont validés et encodés en chaînes PDF UTF-16BE avant l'écriture de la réservation ; les appelants bas niveau chiffrés fournissent un callback StringEncoder qui reçoit les octets en clair et retourne les octets de la chaîne chiffrée

Le callback s'exécute avant l'écriture du moindre octet de réservation, et l'expansion encodée est incluse dans le budget d'objets ; THPDFHeadlessDocument fournit automatiquement le contexte de chiffrement de document authentifié

Enregistrez l'offset d'objet retourné auprès du writer xref partagé, connectez l'objet à un champ de signature et terminez le trailer PDF avant d'appeler HPDFFinalizeHeadlessSignatureReservation

Les appelants bas niveau sont responsables du staging et de la publication ; THPDFHeadlessDocument.SignToFile fournit la protection de source, la préservation du chiffrement, les budgets et la publication atomique de fichier

DocumentTimestamp=true écrit DocTimeStamp/ETSI.RFC3161 au lieu d'un profil d'approbation et interdit les références de transforms de certification ou de verrou de champ ; finalisez-le avec HPDFFinalizeHeadlessDocumentTimestampReservation