Viagens de ida e volta JSON de grafo de objetos com versão

O HotPDF consegue transmitir em stream para JSON versionado todo o grafo de objetos indiretos carregado e reconstruir um documento editável, sem reduzir os valores PDF a uma descrição de tarefa

Schema and compatibility

O esquema atual HotPDF-object-graph-2 regista schemaVersion, minimumReaderVersion, a versão PDF, as referências Root e Info do trailer, todos os objetos indiretos selecionados, os identificadores dos objetos eliminados e o tipo (snapshot ou incremental)

Os leitores aceitam o formato anterior HotPDF-object-graph-1 por compatibilidade e rejeitam versões de esquema futuras ou incompatíveis antes de alterarem o documento de destino

Utilize a API de stream v2 para round trips de edição, porque a v2 regista se o payload de cada stream são dados filtrados em bruto ou dados descodificados

Streaming and binary payloads

ExportLoadedObjectGraphJSONToStream escreve os objetos e os valores PDF ordenados recursivamente diretamente no stream de destino, sem construir uma string JSON do tamanho do documento

Os bytes de stream, em bruto ou descodificados, podem ser omitidos, incorporados em base64 por blocos ou escritos como ficheiros auxiliares (sidecar) na pasta indicada

Os nomes dos ficheiros sidecar são nomes de folha seguros, a publicação usa um ficheiro temporário irmão seguido de substituição atómica, e a importação rejeita caminhos com travessia ou caminhos absolutos

O importador lê blocos de entrada de tamanho fixo e materializa apenas uma entrada de objeto de nível superior de cada vez, impondo limites para bytes de JSON, quantidade e número dos objetos, profundidade dos valores, bytes das strings, streams individuais e bytes agregados dos streams

Snapshot and incremental modes

Um snapshot exporta o grafo completo e ogjimReplace valida um documento candidato antes de o trocar para o destino

Uma exportação incremental contém apenas objetos dirty, must-write e eliminados; ogjimUpdate valida as referências contra a união do grafo existente com o delta e faz depois commit através do mecanismo de transação do grafo carregado

Qualquer valor malformado, referência por resolver, Catalog ou árvore Pages inválidos, Length de stream, direto ou indireto, inconsistente, orçamento esgotado ou leitura falhada de um sidecar deixa o destino inalterado

Limite de segurança

O grafo JSON contém os objetos PDF e as relações Root e Info do trailer, mas nunca exporta palavras-passe, chaves de encriptação nem o estado ativo do security handler

Por isso, um snapshot substituído fica sem encriptação até a aplicação configurar explicitamente a proteção da saída antes de gravar

Primary APIs

Edição de grafo de objetos e montagem de páginas