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