HPDFXFABuildButtonAppearance

Модуль: HPDFXFAHeadless

function HPDFXFABuildButtonAppearance(const Text, Style: AnsiString;
  Width, Height: Double; const TrueTypeFont: SysUtils.TBytes;
  FirstObjectNumber: Integer; const Options: TXFAHeadlessPDFOptions;
  const ResolvedCaptionRuns: THPDFHeadlessRichTextRuns = nil): THPDFXFAButtonAppearance;

Готовит один реальный appearance push-кнопки теми же потребителями подписи, состояний, шрифтов и раскладки, что и автоматическое создание headless XFA; Text в UTF-8, Style — метаданные, эмитированные колбэком раскладки XFA, а Width/Height — физические PDF-пункты

TrueTypeFont несёт реальную программу по умолчанию; Options.CaptionFontFamilies добавляет реальные программы regular, bold, italic и bold-italic с их объявленными метками

FirstObjectNumber должен быть положительным и оставлять место для всех генерируемых подряд номеров объектов; возвращаемый пакет владеет достижимыми нативными объектами и отдельными корнями свойств виджета и шрифта по умолчанию

Фабрика никогда не меняет документ вызывающего и не пишет в его поток; при подготовке действуют проверки шрифтов, глифов, ввода, объектов, байтов сериализации и отмены

При nil в ResolvedCaptionRuns сохраняется прежний путь с настроенными семействами; необязательная подмена поддерживает отдельно разрешённый каталог установленных шрифтов, не заменяя авторский текст и форматирование

Непустая подмена требует текущего rich-содержимого подписи и точного совпадения числа runs, текста, стиля, размера, цвета, подчёркивания, зачёркивания, границ абзаца, выравнивания и упорядоченных FontFamilyCandidates; поменяться может только FontFamily — на настроенную метку

Далее общий шрифтовый фолбэк выбирает реальное семейство, покрывающее целую графему во всех участвующих стилях; отсутствующие программы bold или italic никогда не синтезируются

Метаданные подписей normal/down/rollover, явно пустые и скрытые подписи и обычное поведение с нулевым резервом следуют семантике подписей push-кнопок