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