Versioned Object Graph JSON Round Trips
HotPDF puede transmitir un grafo completo de objetos indirectos cargados a JSON versionado y reconstruir un documento editable sin aplanar los valores PDF en una descripción de trabajo
Esquema y compatibilidad
El esquema actual HotPDF-object-graph-2 registra schemaVersion, minimumReaderVersion, la versión PDF, las referencias Root e Info del trailer, cada objeto indirecto seleccionado, los identificadores de objetos eliminados y el tipo de instantánea o incremental
Los lectores aceptan el formato anterior HotPDF-object-graph-1 por compatibilidad y rechazan las versiones de esquema futuras o incompatibles antes de cambiar el documento de destino
Usa la API de flujo v2 para los viajes de ida y vuelta de edición porque v2 registra si cada carga útil de flujo son datos filtrados sin procesar o datos decodificados
Transmisión y cargas útiles binarias
ExportLoadedObjectGraphJSONToStream escribe los objetos y los valores PDF ordenados recursivamente directamente en el flujo de destino sin construir una cadena JSON del tamaño del documento
Los bytes de flujo sin procesar o decodificados pueden omitirse, incrustarse como base64 fragmentado o escribirse como archivos sidecar en el directorio proporcionado
Los nombres sidecar son nombres de hoja seguros, la publicación usa un archivo temporal hermano seguido de un reemplazo atómico, y la importación rechaza las rutas de traversal o absolutas
El importador lee bloques de entrada de tamaño fijo y materializa solo una entrada de objeto de nivel superior a la vez mientras aplica límites para bytes JSON, recuento y número de objetos, profundidad de valor, bytes de cadena, flujos individuales y bytes de flujo agregados
Modos de instantánea e incremental
Una instantánea exporta el grafo completo y ogjimReplace valida un documento candidato antes de intercambiarlo en el destino
Una exportación incremental contiene solo objetos sucios, de escritura obligatoria y eliminados; ogjimUpdate valida las referencias contra la unión del grafo existente y el delta, y luego confirma a través de la maquinaria de transacciones del grafo cargado
Cualquier valor malformado, referencia sin resolver, árbol de catálogo o páginas no válido, Length de flujo directo o indirecto incoherente, presupuesto agotado o lectura sidecar fallida deja el destino sin cambios
Límite de seguridad
El grafo JSON contiene objetos PDF y las relaciones Root e Info del trailer, pero nunca exporta contraseñas, claves de cifrado ni el estado activo del controlador de seguridad
Una instantánea reemplazada queda por tanto sin cifrar hasta que la aplicación configure explícitamente la protección de salida antes de guardar