THPDFHeadlessDocument.TimestampToFile
function TimestampToFile(FieldIndex: Integer; const FileName: string;
const Options: THPDFHeadlessCMSOptions;
ReservedTimestampBytes: Integer = 16384): THPDFHeadlessCMSResult;
Crea un timestamp de documento real en un campo de firma existente sin firmar y publica atómicamente una salida PDF incremental independiente
FieldIndex es el índice de campo de formulario base cero devuelto por FindFormField; difiere del índice de firma poblado que acepta VerifySignature
El diccionario de salida usa Type DocTimeStamp y SubFilter ETSI.RFC3161, con un token de timestamp DER genuino en su reserva Contents sin cifrar
DigestMethod selecciona SHA256, SHA384 o SHA512 para el ByteRange exacto cubierto del PDF; el writer parchea los rangos numéricos antes de solicitar el token
Timestamp.Transport debe devolver una respuesta RFC 3161 real, y Timestamp.TrustedCAFile debe identificar explícitamente raíces TSA confiables; TrustedCRLFile y RequireRevocation opcionales validan CRLs actuales firmadas por el issuer
La respuesta debe ligar la huella exacta del mensaje y el nonce fresco de la petición, usar un certificado TSA y binding ESS apropiados, y pasar sus comprobaciones inmediatas de firma, propósito, cadena y revocación configuradas antes de la publicación
No se necesita ninguna clave de firma de aplicación ni certificado de signer; las restricciones obligatorias de certificados de firma evalúan el certificado TSA autenticado real y la cadena de certificados embebida
Las restricciones obligatorias de seed de firma de handler, SubFilter RFC3161, digest, reason, URL de timestamp, subject e issuer del certificado y apariencias con nombre actuales siguen siendo efectivas
Las comprobaciones autenticadas de DocMDP y FieldMDP permiten solo los cambios necesarios para insertar un timestamp de documento genuino, incluida la inserción en un campo de firma existente sin firmar bajo P1 o un field lock; esta excepción estándar no permite la firma de aprobación ordinaria ni cambios de formulario que la política original prohíba
Las comprobaciones posteriores de modificación autentican el timestamp, ligan el campo y la firma a su revisión con timestamp, y siguen protegiendo el grafo de objetos certificado original y los campos bloqueados
Para una fuente anterior a PDF 2.0, la salida añade la declaración de extensión ESIC con BaseVersion 1.7 y ExtensionLevel 1 cuando hace falta, preserva los perfiles de extensión existentes y promueve una versión efectiva de PDF anterior a través de Catalog Version 1.7 sin alterar el header original
Los campos de solo lectura, los aliases de origen y los permisos de form-fill AES siguen aplicándose; la certificación de aprobación incompatible, LegalAttestation, los perfiles Adobe de revocación firmada y las referencias de transformación FieldMDP de timestamps se rechazan
ReservedTimestampBytes es una capacidad positiva de token dentro del presupuesto de objetos del documento; el token completo debe caber en la reserva hexadecimal fija
La creación preserva los bytes de la fuente original y la seguridad AES, mantiene los Contents de firmas sin cifrar, cifra los demás metadatos bajo la política original y deja el grafo de campos cargado sin cambios
Los fallos, la cancelación, las respuestas inválidas y los presupuestos insuficientes preservan cualquier destino existente y eliminan los ficheros de staging no publicados
Los tokens de cancelación de documento, CMS y timestamp deben coincidir cuando no son nil; los datos cubiertos se leen en chunks de 64 KiB como máximo
Usa AddSignatureField y SetSignatureFieldAppearance para preparar un nuevo widget de timestamp, y VerifySignature para autenticar el timestamp de documento resultante
TimestampCount es uno y TimestampValid es true tras una creación correcta; CertificateTrusted y TimestampTrustEvaluated reflejan la pasada explícita validada de confianza TSA
El perfil de extensión sigue la cláusula 5.6 de ETSI EN 319 142-1; los cambios necesarios de timestamp siguen la aclaración MDP de ISO 32000-2