Listas ordered de candidatos de tipos de letra rich text

Rich text pode manter uma lista explícita ordered de famílias e usar essa ordem ao selecionar programas genuínos fornecidos de tipos de letra 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 de estilos através das APIs existentes de famílias nomeadas; etiquetas em FontFamilyCandidates não descobrem nem descarregam tipos de letra

Seleção e preservação

O primeiro run escrito afetado fornece a lista para um grapheme completo, incluindo costuras de estilos e marcas de combinação; cada candidato configurado tem de cobrir todas as partes com estilo com o programa real dele de regular, bold, italic ou bold-italic

Etiquetas desconhecidas e candidatos com programas de estilos em falta são ignorados; se nenhum candidato declarado cobrir o grapheme, aplicam-se as regras existentes de fallback de famílias selecionadas e de arrays fornecidos

FontFamily tem de corresponder à primeira etiqueta configurada numa lista de candidatos não vazia quando existir; omitir um FontFamily JSON tipado seleciona essa correspondência automaticamente

O fallback altera apenas a preparação de aparências: o valor plain escrito, o tamanho e a cor tipados precisos e a ordem original de candidatos permanecem em V e RV; o resolver nunca reescreve os runs de quem chama

XHTML inline e intercâmbio

Defina THPDFHeadlessRichTextDecodeOptions.PreserveFontFamilyLists como True com FontFamilyNames configurado para reter declarações inline suportadas de famílias separadas por vírgulas, incluindo herança e prioridade important por propriedade

Importações FDF e XFDF conscientes de famílias ativam esta preservação quando as opções de aparências delas ativam FallbackFontFamilies; a descodificação estrita por defeito mantém a seleção existente da primeira família configurada

As listas contêm no máximo dezasseis etiquetas, cada uma limitada a 128 unidades de código UTF-16 com Unicode válido, sem controlos, whitespace envolvente, aspas, barras invertidas, vírgulas nem ponto e vírgula; etiquetas declaradas duplicadas e desconhecidas mantêm a ordem escrita delas

JSON nativo de 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 de Serif antes de Sans controla o fallback mesmo quando a operação configura Sans antes de Serif; o fornecedor Fontconfig existente fornece programas nomeados reais sob os mesmos limites agregados de tipos de letra e de memória

Arrays de candidatos de runs tipados exigem fontFamilies configurado e fallbackFontFamilies ativo; arrays ou etiquetas malformados, cobertura de graphemes completos em falta, orçamentos esgotados e cancelamento falham transacionalmente antes da confirmação do contexto

A capacidade formData.richFontFamilyCandidates e maxFontFamilyCandidates=16 anunciam esta opção delimitada através dos callbacks V1 inalterados e das versões de símbolos exportados

Preenchimentos chained bem-sucedidos de formulários e importações FDF/XFDF equivalentes mantêm o documento confirmado delas e o snapshot da fonte delas; falhas de callbacks de saída ou de resultados preservam a revisão confirmada precedente

Âmbito

Este perfil cobre etiquetas de candidatos fornecidas e declarações inline suportadas; trabalhos e callbacks versionados de Windows também preservam fallback ordered de famílias fornecidas; folhas de estilo externas, layout CSS arbitrário, descoberta de famílias genéricas e a extensão mais antiga de handles/callbacks de tipos de letra de trabalhos carregados continuam a ser trabalho separado

Comportamento de fallback · Registo de runs tipados · Opções de descodificação · Binding nativo de Linux