Famílias de fontes nomeadas em rich text
Campos rich nativos podem combinar até dezesseis famílias de fontes TrueType Unicode fornecidas, cada uma com programas regular, bold, italic e bold-italic; cada run selecionado usa seus bytes reais de fonte, mapeamento de glyphs, width, baseline e geometria de marks
Configure THPDFHeadlessRichTextFontFamilies, atribua o rótulo FontFamily de cada run, e chame SetRichTextFieldValueWithFamilies; um rótulo de run vazio seleciona a primeira família configurada
Para XHTML, defina FontFamilyNames e a família default de runs antes de decodificar; listas de font-family separadas por vírgulas, com ou sem aspas, selecionam o primeiro rótulo configurado, inherit restaura a família envolvente, e declarações important válidas retêm sua prioridade
Uma lista válida sem nenhum rótulo configurado seleciona a primeira família configurada; uma declaração malformada deixa o valor anterior inalterado; o matching decaixa letras ASCII e preserva os demais caracteres Unicode exatamente
Rótulos contêm no máximo 128 code units UTF-16, sem whitespace nas bordas, controles, surrogates não pareados, aspas, barras invertidas, vírgulas ou ponto e vírgula; este perfil delimitado não implementa escapes CSS nem descoberta implícita de fontes do sistema
O builder puro de aparências de famílias embute apenas os estilos selecionados e aplica orçamentos agregados de fontes, glyphs, objetos, bytes e cancelamento; fontes selecionadas ausentes e rótulos explícitos de runs desconhecidos falham antes de commitar mudanças no documento
O import de formulários ciente de famílias aplica a mesma seleção a FDF RV e XFDF value-richtext reais, preserva políticas existentes de campos e assinaturas, e compara valores rich nomeados canônicos para semantic no-ops
As APIs existentes de família única e o perfil default do decoder retêm suas assinaturas e comportamento; programas usando headers Pascal ou C++Builder regenerados precisam de rebuild ao adotar os records expandidos gerenciados de runs e opções; os records externos da C ABI V1 permanecem inalterados
A seleção JSON de famílias nomeadas nativa do Linux e da C ABI versionada está disponível pelo binding de famílias do Linux; jobs FDF e XFDF do Windows aceitam paths aninhados de arquivos família/estilo ou callbacks V1 existentes de fontes através da troca de form data no Windows
O fallback de graphemes de famílias fornecidas opt-in seleciona programas reais candidatos de família/estilo pelas APIs nativas; o fallback JSON do Linux resolve os programas candidatos configurados exigidos antes de preparar a mesma aparência
Jobs typed-rich do Windows e callbacks versionados selecionam famílias fornecidas, e o fallback rich de fontes do Windows retém candidatos ordered de graphemes completos; escapes CSS arbitrários em rótulos de famílias, aliases implícitos de sistema, folhas de estilo externas, layout CSS geral e a extensão mais antiga de callbacks de handle/fonte de jobs carregados permanecem trabalho ativo
Aceitação
Seis alvos nativos de compiladores passam por 168 assertions e 1327 checagens independentes sobre 36 PDFs reais salvos por alvo, incluindo oito programas reais de fontes, advances de famílias mistas, rótulos Unicode, prioridade herdada, import FDF/XFDF, segurança AES R5/R6, rollback e cancelamento inicial ou tardio
Headers C++Builder frescos compilam os novos records de famílias, builders e métodos de documentos nas duas arquiteturas; ambas as shared libraries versionadas do Linux passam pelos callbacks existentes de quatro fontes e checagens independentes de saída após rebuild com os novos records internos