Round trips JSON del object graph versionado

HotPDF puede transmitir por streaming un graph completo de objetos indirectos cargados a JSON versionado y reconstruir un documento editable sin aplanar los valores PDF en una descripción de job

Schema y compatibilidad

El schema 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 snapshot o incremental

Los readers aceptan el formato anterior HotPDF-object-graph-1 por compatibilidad y rechazan versiones de schema futuras o incompatibles antes de cambiar el documento destino

Use el stream API de v2 para los round trips de edición porque v2 registra si cada payload de stream es datos filtrados en bruto o datos decodificados

Streaming y payloads binarios

ExportLoadedObjectGraphJSONToStream escribe los objetos y los valores PDF ordenados recursivamente directamente al stream de destino sin construir una cadena JSON del tamaño del documento

Los bytes de stream en bruto o decodificados se pueden omitir, incrustar como base64 por chunks o escribir como archivos sidecar bajo el directorio suministrado

Los nombres sidecar son nombres hoja seguros, la publicación usa un archivo temporal hermano seguido de un reemplazo atómico, y el import rechaza paths de traversal o absolutos

El importer 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 de bytes JSON, conteo y número de objetos, profundidad de valores, bytes de cadenas, streams individuales y bytes agregados de streams

Modos snapshot e incremental

Un snapshot exporta el graph completo y ogjimReplace valida un documento candidato antes de intercambiarlo por el destino

Una exportación incremental contiene solo los objetos dirty, must-write y eliminados; ogjimUpdate valida las referencias contra la unión del graph existente y el delta, y luego confirma a través de la maquinaria de transacciones del graph cargado

Cualquier valor malformado, referencia no resuelta, árbol Catalog o Pages inválido, Length de stream directo o indirecto inconsistente, presupuesto agotado o lectura sidecar fallida deja el destino sin cambios

Límite de seguridad

El graph JSON contiene objetos PDF y las relaciones Root e Info del trailer, pero nunca exporta contraseñas, encryption keys ni el estado activo del security handler

Un snapshot reemplazado queda entonces sin cifrar hasta que la aplicación configure explícitamente la protección de salida antes de guardar

APIs principales

Edición del object graph y ensamblado de páginas