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

APIs principales

Edición de grafos de objetos y ensamblado de páginas