Класс THPDFFDFAnnotationGraph
Модуль: HPDFFDFAnnotations
Владеет ограниченным графом значений FDF, его косвенными объектами и массивом аннотаций
Чтение и запись
Decode(Bytes, Options, AllowFields) проверяет полные бинарные данные FDF и возвращает граф, принадлежащий вызывающему; Encode возвращает канонические байты FDF с пересчитанными длинами потоков и смещениями перекрёстных ссылок
AnnotationCount, Annotation, AnnotationPage и ObjectCount осматривают допущенный граф аннотаций; Resolve следует косвенным ссылкам с областью видимости графа
Необязательный флаг декодирования AllowFields допускает массив Fields для осмотра графа; он не реализует заполнение полей и не разрешает аннотационному адаптеру отбрасывать обновления полей
Построение
Создайте граф с THPDFFDFOptions, вызовите StartAnnotations, затем используйте CreateValue, SetScalar, SetStream, AddItem, AddEntry, Define и AppendAnnotation для построения его значений
Скалярные токены билдера используют синтаксис PDF, например имя с префиксом-слэшем или строку в круглых скобках; имена записей словарей — это декодированные байты имён без ведущего слэша
Каждое значение принадлежит своему графу, а записи контейнеров заимствованы; не освобождайте потомка независимо, не присоединяйте значение из другого графа и не удерживайте значение после освобождения его графа
Построенные потоки получают свой канонический Length при кодировании; предоставляйте байты потока вместо ручного построения совпадающей записи Length
Контекст и пределы
ActionCount, Action, IsLocalGoTo, IsLocalDestination и LocalDestinationPage осматривают фактические контексты действий аннотаций, не исполняя их действия
Мутация графа делает кэшированные контексты действий недействительными; последующие запросы перестраивают их под теми же пределами рабочего хранилища, глубины и отмены
ReservedBytes сообщает консервативный учёт допуска, тогда как Reserve позволяет адаптеру допустить дополнительное связанное с графом хранилище до выделения
Malformed ссылки, дублирующиеся декодированные имена словарей, недопустимые страницы аннотаций, недопустимые подтипы и превышенные пределы возбуждают исключение до возврата закодированного результата
Замещение на уровне документа, разрешения и поведение публикации см. в нативном обмене аннотациями FDF