HPDFWriteHeadlessSignatureReservation

Valores opcionais de THPDFHeadlessSignatureMetadata viram entradas Unicode de Reason, Location, ContactInfo e Name; o mesmo StringEncoder se aplica tanto a nomes de field locks quanto a metadados, antes de qualquer byte ser gravado

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;

Grava um dicionário de assinatura indireto real com slots numéricos fixos de ByteRange e uma reserva hexadecimal de Contents preenchida com zeros

O chamador é dono do stream de saída e precisa fornecer um número de objeto positivo, uma geração de 0 a 65535, uma reserva DER positiva e um orçamento de bytes por objeto

A função checa o tamanho completo do dicionário antes de gravar ou alocar a reserva, e preenche seu payload hexadecimal em chunks delimitados

Defina CAdES=true para ETSI.CAdES.detached; o default grava adbe.pkcs7.detached

Forneça uma referência válida de Catalog e uma permissão de certificação de 1 a 3 para emitir um transform DocMDP; um field lock opcional emite seu transform FieldMDP real no mesmo array Reference

Nomes de field locks são validados e codificados como strings PDF UTF-16BE antes de gravar a reserva; chamadores de baixo nível criptografados fornecem um callback StringEncoder que recebe os bytes em texto puro e retorna os bytes da string criptografada

O callback roda antes de qualquer byte da reserva ser gravado, e a expansão codificada é incluída no orçamento do objeto; THPDFHeadlessDocument fornece automaticamente o contexto autenticado de criptografia do documento

Registre o offset do objeto retornado no writer compartilhado de xref, conecte o objeto a um campo de assinatura e termine o trailer do PDF antes de chamar HPDFFinalizeHeadlessSignatureReservation

Chamadores de baixo nível são responsáveis pelo staging e pela publicação; THPDFHeadlessDocument.SignToFile fornece proteção da origem, preservação de criptografia, orçamentos e publicação atômica de arquivos

DocumentTimestamp=true grava DocTimeStamp/ETSI.RFC3161 em vez de um perfil de aprovação, e proíbe referências de transforms de certificação ou field lock; finalize com HPDFFinalizeHeadlessDocumentTimestampReservation