HPDFXFABuildButtonAppearance
Unit: HPDFXFAHeadless
function HPDFXFABuildButtonAppearance(const Text, Style: AnsiString;
Width, Height: Double; const TrueTypeFont: SysUtils.TBytes;
FirstObjectNumber: Integer; const Options: TXFAHeadlessPDFOptions;
const ResolvedCaptionRuns: THPDFHeadlessRichTextRuns = nil): THPDFXFAButtonAppearance;
Prepara una appearance real de pushbutton usando los mismos consumidores de caption, estado, fuente y layout que la creación headless automática de XFA; Text es UTF-8, Style son los metadatos emitidos por el callback de layout de XFA, y Width/Height son puntos PDF físicos
TrueTypeFont suministra el programa por defecto real; Options.CaptionFontFamilies suministra programas reales adicionales regular, bold, italic y bold-italic, con sus etiquetas declaradas
FirstObjectNumber debe ser positivo y dejar espacio para todos los números de objeto consecutivos generados; el bundle devuelto es dueño de los objetos nativos alcanzables y de las raíces separadas de propiedades de widget y fuente por defecto
La fábrica nunca modifica un documento del llamador ni escribe en un stream del llamador; las verificaciones de fuente, glyphs, entrada, objetos, bytes de serialización y cancelación aplican durante la preparación
Con ResolvedCaptionRuns en nil, se conserva la ruta existente de familias configuradas; el override opcional soporta un catálogo de fuentes instaladas resuelto por separado sin reemplazar el texto ni el formato del autor
Un override no vacío exige el payload de caption rico actual y coincidencia exacta de cantidad de runs, texto, estilo, tamaño, color, underline, strikeout, frontera de párrafo, alineación y FontFamilyCandidates ordenados; solo FontFamily puede cambiar a una etiqueta configurada
El font fallback compartido elige entonces una familia real que cubra el grapheme completo a través de todos los estilos participantes; los programas bold o italic faltantes nunca se sintetizan
Los metadatos de caption normal/down/rollover, los captions vacíos explícitos, los captions ocultos y el comportamiento normal de reserva cero siguen la semántica de captions de pushbutton