PDFium Delphi Component Docs

Кэшированные узлы макета

Компонент: TPdf  ·  Модуль: FPdfLayout

Syntax

procedure TPdfLayoutDocument.AddCachedNode(Node: TPdfLayoutCachedNode; Height: Single = 0; Width: Single = 0);

Measurement cache

BuildPlan кэширует полностью измеренный план по ограничениям страницы, содержимому элементов, шрифту, стилю, идентичности источника, зарезервированным цифрам страниц и TPdfLayoutMeasurer.CacheIdentity

Совпадающий вызов возвращается без повторного измерения текста и сообщает результат через CacheHitCount; изменившееся содержимое даёт CacheMissCount и заменяет снимок

Вызывайте InvalidateCache, чтобы освободить сохранённый снимок или когда собственный измеритель сохраняет одну идентичность, меняя поведение

Lazy nodes

Наследуйте от TPdfLayoutCachedNode и переопределите BuildContent, чтобы макет узла создавался только при первом размещении

Базовый узел можно также заполнить напрямую через Content

Вызывающий владеет каждым узлом и должен сохранять его живым до возврата GenerateLayout

Native reuse

Первое размещение рендерит один приватный одностраничный макет и создаёт один привязанный к назначению XObject с помощью FPDF_NewXObjectFromPage

Каждое повторное размещение создаёт лёгкий объект Form из того же XObject, а ReusedXObjectCount сообщает о числе избежанных сборок шаблона

Safety

Содержимое узла должно помещаться на одну страницу, размеры которой совпадают с заданными в конструкторе узла

Рекурсивные ссылки узлов отклоняются, а внешняя транзакция добавления откатывает все страницы, созданные вызовом

Вызывайте Invalidate, чтобы перестроить переопределённый ленивый узел после изменения его внешних входных данных

See Also

GenerateLayout, CreateXObjectFromPage