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