THPDFFDFAnnotationGraph-Klasse
Unit: HPDFFDFAnnotations
Besitzt einen begrenzten FDF-Wertgraphen, seine indirekten Objekte und sein Annotation-Array
Lesen und Schreiben
Decode(Bytes, Options, AllowFields) validiert vollständige binäre FDF-Daten und gibt einen vom Aufrufer besessenen Graphen zurück; Encode gibt kanonische FDF-Bytes mit neu erzeugten Stream-Längen und Cross-Reference-Offsets zurück
AnnotationCount, Annotation, AnnotationPage und ObjectCount untersuchen den zugelassenen Annotation-Graphen; Resolve folgt graph-scoped indirekten Referenzen
Das optionale Dekodierflag AllowFields nimmt ein Fields-Array zur Graphinspektion an; es implementiert kein Ausfüllen von Feldern und autorisiert keinen Nur-Annotation-Adapter, Feldaktualisierungen zu verwerfen
Aufbau
Erstellen Sie den Graphen mit THPDFFDFOptions, rufen Sie StartAnnotations auf und konstruieren Sie dann mit CreateValue, SetScalar, SetStream, AddItem, AddEntry, Define und AppendAnnotation seine Werte
Builder-Skalar-Tokens nutzen PDF-Syntax, etwa ein schrägstrichpräfixierter Name oder ein eingeklammerter String; Dictionary-Eintragsnamen sind dekodierte Namensbytes ohne führenden Schrägstrich
Jeder Wert gehört zu seinem Graphen, und Container-Einträge sind geliehen; geben Sie kein Kind unabhängig frei, hängen Sie keinen Wert aus einem anderen Graphen an und behalten Sie keinen Wert, nachdem sein Graph freigegeben wurde
Konstruierte Streams erhalten ihre kanonische Length beim Kodieren; liefern Sie Stream-Bytes, statt einen passenden Length-Eintrag manuell zu konstruieren
Kontext und Grenzen
ActionCount, Action, IsLocalGoTo, IsLocalDestination und LocalDestinationPage untersuchen tatsächliche Annotation-Action-Kontexte, ohne ihre Actions auszuführen
Graphmutation invalidiert zwischengespeicherte Action-Kontexte; nachfolgende Abfragen bauen sie unter denselben Arbeitsspeicher-, Tiefen- und Abbruchgrenzen neu auf
ReservedBytes berichtet konservative Zulassungsbuchhaltung, während Reserve einem Adapter erlaubt, zusätzliche graphbezogene Speicherung vor der Allokation anzumelden
Fehlerhafte Referenzen, doppelte dekodierte Dictionary-Namen, ungültige Annotation-Seiten, unzulässige Subtypes und überschrittene Grenzen werfen eine Ausnahme, bevor ein kodiertes Ergebnis zurückgegeben wird
Siehe nativen Annotation-FDF-Austausch für Ersetzung auf Dokumentebene, Berechtigungen und Veröffentlichungsverhalten