Classe THPDFFDFAnnotationGraph

Unit: HPDFFDFAnnotations

É dona de um grafo delimitado de valores FDF, seus objetos indiretos e seu array de anotações

Leitura e escrita

Decode(Bytes, Options, AllowFields) valida dados FDF binários completos e retorna um grafo de propriedade do caller; Encode retorna bytes FDF canônicos com comprimentos de stream regenerados e offsets de cross-reference

AnnotationCount, Annotation, AnnotationPage e ObjectCount inspecionam o grafo de anotações admitido; Resolve segue referências indiretas com escopo no grafo

A flag de decodificação opcional AllowFields admite um array Fields para inspeção do grafo; ela não implementa preenchimento de campos nem autoriza um adapter apenas de anotações a descartar atualizações de campos

Construção

Crie o grafo com THPDFFDFOptions, chame StartAnnotations e use CreateValue, SetScalar, SetStream, AddItem, AddEntry, Define e AppendAnnotation para construir seus valores

Tokens escalares do builder usam sintaxe PDF, como um nome com prefixo de barra ou um string entre parênteses; nomes de entradas de dicionários são bytes de nomes decodificados sem barra inicial

Cada valor pertence ao seu grafo e entradas de containers são emprestadas; não libere um filho independentemente, não anexe um valor de outro grafo nem retenha um valor depois de liberar seu grafo

Streams construídos recebem seu Length canônico durante a codificação; forneça bytes de stream em vez de construir manualmente uma entrada Length correspondente

Contexto e limites

ActionCount, Action, IsLocalGoTo, IsLocalDestination e LocalDestinationPage inspecionam contextos reais de actions de anotações sem executar as actions

Mutação do grafo invalida contextos de actions cacheados; queries subsequentes os reconstruem sob os mesmos limites de armazenamento de trabalho, profundidade e cancelamento

ReservedBytes reporta contabilidade conservadora de admissão, enquanto Reserve permite que um adapter admita armazenamento adicional relacionado ao grafo antes da alocação

Referências malformadas, nomes de dicionários decodificados duplicados, páginas de anotações inválidas, subtipos inadmissíveis e limites excedidos levantam uma exceção antes de um resultado codificado ser retornado

Veja troca nativa de anotações FDF para comportamento de substituição, permissões e publicação no nível do documento