THPDFFDFAnnotationGraph class

Unit: HPDFFDFAnnotations

Is eigenaar van een begrensde FDF-waardengraaf, diens indirecte objecten en diens annotatie-array

Lezen en schrijven

Decode(Bytes, Options, AllowFields) valideert complete binaire FDF-data en geeft een graaf terug waarvan de caller eigenaar is; Encode geeft canonieke FDF-bytes terug met opnieuw gegenereerde stream-lengtes en cross-reference-offsets

AnnotationCount, Annotation, AnnotationPage en ObjectCount inspecteren de toegelaten annotatie-graaf; Resolve volgt graaf-scoped indirecte references

Het optionele AllowFields-decodeflag laat een Fields-array toe voor graafinspectie; het implementeert geen field-filling en machtigt geen annotation-only-adapter om field-updates weg te gooien

Bouwen

Maak de graaf met THPDFFDFOptions, roep StartAnnotations aan, en gebruik dan CreateValue, SetScalar, SetStream, AddItem, AddEntry, Define en AppendAnnotation om diens waarden te bouwen

Builder scalar-tokens gebruiken PDF-syntax, zoals een naam met slash-prefix of een string tussen haakjes; dictionary entry-namen zijn decoded name-bytes zonder voorloopslash

Elke waarde hoort bij diens graaf en container-entries zijn borrowed; free een child niet zelfstandig, hang geen waarde uit een andere graaf in en behoud geen waarde na het free-en van diens graaf

Geconstrueerde streams krijgen hun canonieke Length tijdens encoding; lever stream-bytes aan in plaats van handmatig een matchende Length-entry te construeren

Context en limieten

ActionCount, Action, IsLocalGoTo, IsLocalDestination en LocalDestinationPage inspecteren echte annotation-action-contexten zonder diens actions uit te voeren

Graafmutatie maakt gecachte action-contexten ongeldig; daaropvolgende queries bouwen ze opnieuw op onder dezelfde working storage-, diepte- en annuleringslimieten

ReservedBytes rapporteert conservatieve toelatingsboekhouding, terwijl Reserve een adapter toestaat om extra graafgerelateerde opslag toe te laten vóór allocatie

Misvormde references, gedupliceerde decoded dictionary-namen, ongeldige annotatiepagina's, ontoelaatbare subtypes en overschreden limiten werpen een exception op voordat een encoded resultaat wordt teruggegeven

Zie native annotatie-FDF-uitwisseling voor vervanging op documentniveau, permission- en publicatiegedrag