THPDFHeadlessDocument.SignToFile

function SignToFile(FieldIndex: Integer; const FileName: string;
  const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes;
  const Options: THPDFHeadlessCMSOptions;
  ReservedCMSBytes: Integer = 16384): THPDFHeadlessCMSResult;

Firma un campo firma AcroForm esistente non firmato e pubblica atomicamente un output indipendente su Linux nativo o Windows

FieldIndex è l'indice del campo modulo a base zero restituito da FindFormField o GetFormField, che può differire dall'indice di firma firmata accettato da VerifySignature

Il certificato e la chiave privata corrispondente devono essere byte PEM; le chiavi private cifrate vengono rifiutate senza prompt, e OpenSSL 3 è caricato tramite lo stesso provider usato da HPDFSignHeadlessCMS

ReservedCMSBytes riserva un gap esadecimale fisso di Contents prima dell'hashing; deve essere positivo, stare nel budget oggetti del documento e contenere il CMS DER completo generato

Il profilo predefinito è adbe.pkcs7.detached; RequireCAdES=true scrive ETSI.CAdES.detached e include un attributo signing-certificate, la verifica del documento autentica automaticamente il suo binding ESS, con trust CA esplicito valutato separatamente

Il writer copia i byte sorgente, accoda valori di campo sostitutivi e un nuovo oggetto firma tramite il writer xref condiviso, corregge gli slot ByteRange a larghezza fissa, firma i veri range del file di staging e verifica il CMS risultante prima di flush e pubblicazione atomica

Ogni firma di approvazione precedente conserva i suoi esatti byte originali; il risultato di verifica riporta una revisione precedente valida e il numero di byte successivi non firmati

La sorgente è aperta in sola lettura, il grafo dei campi caricato non cambia con la firma, e alias di percorso sorgente o alias fisici di file vengono rifiutati

I fallimenti conservano una destinazione esistente e cancellano il file di staging non pubblicato, inclusi cancellazione, riserve insufficienti, fallimenti certificato/chiave, errori crittografici ed esaurimento del budget oggetti o file

Campi read-only, valori di campi firmati, policy certified-document non consentite e permessi form-fill AES negati vengono rifiutati; l'autenticazione owner può autorizzare sorgenti ristrette, mentre l'output conserva la password utente originale e la policy di sicurezza

CertificationPermission da 1 a 3 crea una prima firma di certificazione con Perms.DocMDP del catalogo e una trasformazione SigRef; zero crea una firma di approvazione, inclusa una firma successiva consentita in un campo esistente sotto DocMDP P2 o P3

Le opzioni documento e CMS devono usare lo stesso cancellation token se entrambe lo specificano; altrimenti il provider CMS eredita il token del documento

Il THPDFHeadlessCMSResult restituito separa l'integrità dal trust CA valutato esplicitamente; nessuna conclusione su timestamp, revoca o validazione a lungo termine è implicita

Usa AddSignatureField e SetSignatureFieldAppearance per preparare un nuovo widget firma visibile, oppure SignPFXToFile per caricare un'identità PKCS12 tramite OpenSSL 3

Usa TimestampToFile per aggiungere un timestamp documento RFC3161 autonomo senza un'identità di firma applicativa