Listas ordered de candidatos de fontes em rich text
Rich text pode reter uma lista explícita ordered de famílias e usar essa ordem ao selecionar programas genuínos de fontes fornecidas para um grapheme Unicode completo
Run:= THPDFHeadlessRichTextRun.Default;
Run.Text:= 'A' + WideChar($03A9) + 'B';
Run.FontFamily:= 'Primary';
SetLength(Run.FontFamilyCandidates, 3);
Run.FontFamilyCandidates[0]:= 'Primary';
Run.FontFamilyCandidates[1]:= 'Serif';
Run.FontFamilyCandidates[2]:= 'Sans';
Options:= THPDFHeadlessTextAppearanceOptions.Default;
Options.FallbackFontFamilies:= True;
Forneça os programas reais de famílias e estilos pelas APIs existentes de famílias nomeadas; rótulos em FontFamilyCandidates não descobrem nem baixam fontes
Seleção e preservação
O primeiro run autorado afetado fornece a lista para um grapheme completo, incluindo costuras de estilo e combining marks; cada candidato configurado precisa cobrir cada parte estilizada com seu programa real regular, bold, italic ou bold-italic
Rótulos desconhecidos e candidatos com programas de estilos ausentes são ignorados; se nenhum candidato declarado cobre o grapheme, as regras existentes de fallback de família selecionada e array fornecido se aplicam
FontFamily precisa corresponder ao primeiro rótulo configurado numa lista de candidatos não vazia quando ela existe; omitir um FontFamily JSON tipado seleciona esse match automaticamente
O fallback muda apenas a preparação de aparências: o valor simples autorado, o tamanho e a cor tipados precisos e a ordenação original de candidatos permanecem em V e RV; o resolver nunca reescreve os runs do chamador
XHTML inline e interchange
Defina THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists como True com FontFamilyNames configurado para reter declarações inline suportadas de font-family separadas por vírgulas, incluindo herança e prioridade important por propriedade
Imports FDF e XFDF cientes de famílias habilitam essa preservação quando as opções de aparências deles habilitam FallbackFontFamilies; a decodificação default estrita mantém a seleção existente da primeira família configurada
Listas contêm no máximo dezesseis rótulos, cada um delimitado a 128 code units UTF-16 com Unicode válido, sem controles, whitespace nas bordas, aspas, barras invertidas, vírgulas ou ponto e vírgula; rótulos declarados duplicados e desconhecidos retêm sua ordem autorada
JSON nativo do Linux
{"schemaVersion":1,"type":"forms.fill",
"fontFamilies":["Primary","Sans","Serif"],"fallbackFontFamilies":true,
"fields":[{"name":"Input","richTextRuns":[
{"text":"A\u03a9B","fontFamily":"Primary",
"fontFamilyCandidates":["Primary","Serif","Sans"]}
]}]}
A ordem declarada Serif-antes-de-Sans controla o fallback mesmo quando a operação configura Sans antes de Serif; o provider Fontconfig existente fornece programas nomeados reais sob os mesmos limites agregados de fontes e memória
Arrays de candidatos de runs tipados exigem fontFamilies configuradas e fallbackFontFamilies habilitado; arrays ou rótulos malformados, cobertura de graphemes completos ausente, orçamentos esgotados e cancelamento falham transacionalmente antes do commit do contexto
A capability formData.richFontFamilyCandidates e maxFontFamilyCandidates=16 anunciam esta opção delimitada pelos callbacks V1 inalterados e versões de símbolos exportados
Form fills encadeados bem-sucedidos e imports FDF/XFDF equivalentes retêm seu documento commitado e snapshot da origem; falhas de callbacks de saída ou resultado preservam a revisão commitada precedente
Escopo
Este perfil cobre rótulos candidatos fornecidos e declarações inline suportadas; jobs do Windows e callbacks versionados também preservam o fallback ordered de famílias fornecidas; folhas de estilo externas, layout CSS arbitrário, descoberta de generic-family e a extensão mais antiga de callbacks de handle/fonte de jobs carregados permanecem trabalho separado
Comportamento de fallback · Record de runs tipados · Opções de decode · Binding nativo do Linux