PDF de revisión anotado nativo
Crea resaltes de revisión visibles reales en una copia PDF nativa incremental conservando el contenido original de páginas, recursos, cifrado y rangos de bytes de firmas
{"schemaVersion":1,"type":"compare.contract","format":"pdf","side":"after","options":{"maxHighlights":1000}}
Llama a hpdf_document_compare_json_v1 con dos handles cargados, un callback de salida PDF obligatorio y un callback de resultado obligatorio; side selecciona before o after y es after por defecto
El resultado JSON contiene la comparación semántica completa, mediaType:application/pdf y el lado seleccionado; el callback binario recibe la revisión PDF real ya preparada
Puntos de entrada Pascal
HPDFSaveHeadlessContractAnnotatedPDF mapea un reporte de comparación completo a resaltes de líneas de origen, validando el recuento de páginas, el texto y la geometría de líneas posicionadas contra el documento cargado seleccionado antes de exportar
SaveReviewHighlightsToFile acepta rectángulos de página explícitos y captions Unicode para otros flujos de revisión
Salida y permisos
Cada resalte tiene una anotación Highlight real, rectángulo, cuadrilátero, contents Unicode, flag de impresión y una apariencia normal de Form con relleno amarillo y transparencia Multiply
Las anotaciones y los widgets de firma existentes permanecen; ninguno de los dos puntos de entrada muta las anotaciones del documento cargado ni su estado dirty
Un DocMDP P3 autenticado permite anotaciones de revisión; P1 y P2 las rechazan antes de la publicación, igual que los permisos autenticados de field-lock más restrictivos y los permisos de usuario cifrados sin derechos de anotación
Las revisiones de revisión P3 válidas pueden reabrirse y guardarse de nuevo; la validación preserva los widgets originales exactamente una vez y sigue protegiendo contenidos de páginas, recursos y campos firmados o bloqueados
Límites y cancelación
Inicializa THPDFHeadlessReviewOptions.Default antes de cambiar MaxHighlights, MaxWorkingBytes o CancellationToken; los defaults son 10000 resaltes y 67108864 bytes de preparación
Los límites de objetos del documento, de bytes de objeto, de bytes de archivo y de profundidad también aplican; los captions exigen UTF-16 válido sin NUL, y los rectángulos exigen coordenadas finitas acotadas y dimensiones positivas
El writer prepara en privado, hace flush del archivo de staging y publica mediante rename atómico; los alias de origen, los fallos de validación, los presupuestos agotados y la cancelación conservan un destino existente y eliminan los archivos de staging no publicados
Usa un cancellation token compartido para un documento y sus opciones de revisión; los límites temporales del documento se restauran incluso cuando se solicita cancelación
Verificación con lectores
La aceptación comprueba texto plano, Forms anidados, AES R5/R6, captions Unicode, revisiones repetidas, preservación de firmas CAdES de confianza, píxeles MuPDF visibles reales y ambos lados de origen a través de callbacks nativos fragmentados
Un lector puede seleccionar compositing transparente de página desde los recursos de anotaciones incluso con el dibujado de anotaciones deshabilitado, cambiando el antialiasing del texto; quitar solo las anotaciones de forma independiente restaura los píxeles originales exactos de la página
Los rectángulos de comparación cubren las líneas semánticas afectadas en lugar de los contornos exactos de caracteres; los heat maps de comparación general de imágenes y las comparaciones anotadas fuera del contrato siguen siendo capacidades separadas
Comportamiento y límites de revisión nativa · Comparación de contratos nativa