Classe THPDFFDFAnnotationGraph
Unit: HPDFFDFAnnotations
È proprietaria di un grafo limitato di valori FDF, dei suoi oggetti indiretti e del suo array di annotazioni
Lettura e scrittura
Decode(Bytes, Options, AllowFields) valida dati binari FDF completi e restituisce un grafo owned dal caller; Encode restituisce byte FDF canonici con lunghezze di stream rigenerate e offset delle riferimenti incrociati
AnnotationCount, Annotation, AnnotationPage e ObjectCount esaminano il grafo di annotazioni ammesso; Resolve segue i riferimenti indiretti con ambito del grafo
Il flag di decodifica opzionale AllowFields ammette un array Fields per l'esame del grafo; non implementa il riempimento dei campi né autorizza un adattatore di sole annotazioni a scartare gli aggiornamenti dei campi
Costruzione
Creare il grafo con THPDFFDFOptions, chiamare StartAnnotations, poi usare CreateValue, SetScalar, SetStream, AddItem, AddEntry, Define e AppendAnnotation per costruire i suoi valori
I token scalari del builder usano la sintassi PDF, come un nome con prefisso barra o una stringa tra parentesi; i nomi delle voci dei dizionari sono byte di nome decodificati senza barra iniziale
Ogni valore appartiene al proprio grafo e le voci dei contenitori sono prese in prestito; non liberare un figlio in modo indipendente, non attaccare un valore di un altro grafo e non trattenere un valore dopo aver liberato il suo grafo
Gli stream costruiti ricevono il loro Length canonico durante la codifica; fornire byte di stream invece di costruire manualmente una voce Length corrispondente
Contesto e limiti
ActionCount, Action, IsLocalGoTo, IsLocalDestination e LocalDestinationPage esaminano i contesti di azione effettivi delle annotazioni senza eseguire le loro azioni
La mutazione del grafo invalida i contesti di azione in cache; le query successive li ricostruiscono sotto gli stessi limiti di archiviazione di lavoro, profondità e cancellazione
ReservedBytes riporta la contabilità conservativa di ammissione, mentre Reserve consente a un adattatore di ammettere archiviazione aggiuntiva correlata al grafo prima dell'allocazione
Riferimenti malformed, nomi di dizionario decodificati duplicati, pagine di annotazione non valide, sottotipi non ammissibili e limiti superati sollevano un'eccezione prima che un risultato codificato venga restituito
Per la sostituzione a livello di documento, permessi e comportamento di pubblicazione vedere lo scambio FDF nativo delle annotazioni