PDF de revisión con anotaciones nativo
Crea resaltes de revisión realmente visibles en una copia PDF nativa incremental conservando el contenido de páginas, recursos, cifrado y rangos de bytes de firmas originales
{"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 por defecto es after
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 preparada
Puntos de entrada Pascal
HPDFSaveHeadlessContractAnnotatedPDF mapea un informe 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 y captions Unicode explícitos para otros workflows 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 apariencia Form normal con relleno amarillo y transparencia Multiply
Las anotaciones y widgets de firma existentes permanecen presentes; ningún punto de entrada muta las anotaciones ni el estado dirty del documento cargado
DocMDP P3 autenticado permite anotaciones de revisión; P1 y P2 las rechazan antes de publicar, 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 valores por defecto son 10000 resaltes y 67108864 bytes de preparación
También se aplican los límites de objetos del documento, bytes de objeto, bytes de archivo y profundidad; las captions exigen UTF-16 válido sin NUL, y los rectángulos exigen coordenadas finitas acotadas y dimensiones positivas
El writer prepara en privado, vuelca el archivo de staging y publica mediante rename atómico; los alias del 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 el documento y sus opciones de revisión; los límites temporales del documento se restauran incluso cuando se solicita la 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 realmente visibles y ambos lados del origen mediante callbacks nativos fragmentados
Un lector puede seleccionar compositing transparente de páginas desde los recursos de anotaciones incluso con el dibujado de anotaciones desactivado, cambiando el antialiasing del texto; eliminar solo las anotaciones de forma independiente restaura los píxeles exactos de la página original
Los rectángulos de comparación cubren las líneas semánticas afectadas en lugar de los contornos exactos de caracteres; los heat maps generales de comparación de imágenes y las comparaciones anotadas sin contrato siguen siendo capacidades separadas
Comportamiento y límites de la revisión nativa · Comparación de contratos nativa