Campos nativos de rich text

SetRichTextFieldValueWithAppearance grava o texto simples V sincronizado, o RV canônico XHTML, a flag RichText do campo e as aparências reais de todos os widgets existentes

Cada run fornece texto Unicode, um estilo de fonte, um tamanho positivo em pontos, cor RGB, underline ou strikeout opcionais, quebras de parágrafos e alinhamento left, center ou right; as quatro fontes de estilo são programas TrueType Unicode fornecidos pelo chamador, com as checagens existentes de edição e embutimento

Runs usam um estilo regular preto de 12pt por default; o alinhamento de parágrafos vem do primeiro run dele e tem default left

A aparência usa fontes de estilo reais embutidas, mapeamentos de glyphs e fragmentos medidos de palavras com baselines compartilhadas de linhas; fragmentos repetidos compartilham cada programa de fonte de estilo dentro de um widget

Quebras explícitas de CR, LF, CRLF, NEL, LINE SEPARATOR e PARAGRAPH SEPARATOR e transições de parágrafos exigem um campo multiline; wrapping medido, rotações de widgets e clipping usam o retângulo real do widget

A atualização tipada pode habilitar rich text num campo de texto simples, enquanto combinações de password, file-select e comb são rejeitadas antes da mutação

Campos read-only, MaxLen, políticas autenticadas de documentos assinados, permissões criptografadas de form-fill, cancelamento e orçamentos de objetos, fontes, glyphs e saída ainda se aplicam

Todas as atualizações rich preparam overrides de V, RV, Ff e AP antes de alterar o documento; strings e streams salvos retêm a política original AES-256 R5 ou R6

Arrays de estilos, linhas de layout e fragmentos pintados têm cada um um teto de 4096 itens, além dos limites configurados do documento; bytes de fontes de estilos são cobrados agregadamente

Chamadas comuns de SetTextFieldValueWithAppearance num campo rich existente substituem seu conteúdo pelo estilo simples fornecido e sincronizam o RV; chamadas somente de valor de SetTextFieldValue também sincronizam o RV e retêm NeedAppearances=true

GetRichTextFieldValue lê a string real armazenada de texto XHTML ou o stream de texto UTF-8, incluindo valores herdados

O primeiro run de cada parágrafo seleciona o alinhamento dele mesmo quando aquele run tem texto vazio; mudanças inline de estilos e quebras de linha explícitas retêm aquele alinhamento de parágrafo

Palavras largas demais em campos multiline com wrapping são divididas nas fronteiras de extended graphemes do Unicode 17, preservando sequências combinantes, scalars suplementares, sequências de emoji e o texto original V/RV; um cluster indivisível mais largo que o campo permanece intacto e clipado

Bordas retangulares e circulares são pintadas antes do clip de conteúdo, e linhas multilinha selecionadas recebem fundos azuis reais usando o ascent, descent e spacing medidos de cada linha rich

ABI JSON nativa

{"schemaVersion":1,"type":"forms.fill","fields":[
  {"name":"Input","fontFamily":"DejaVu Sans Mono","richTextRuns":[
    {"text":"Regular Unicode text "},
    {"text":"Bold red text","fontStyle":"bold","fontSize":20,"color":[1,0,0]},
    {"text":"Next paragraph","fontStyle":"italic","paragraphBreakBefore":true,
     "alignment":"center","underline":true}
  ]}
]}

richTextRuns é um array de objetos com text obrigatório e fontStyle, fontSize, color, underline, strikeOut, paragraphBreakBefore e alignment opcionais; fontStyle aceita regular, bold, italic ou boldItalic

Arrays fontFamilies opcionais selecionam programas nomeados reais por run através de fontFamily, com um array de nível de edição sobrepondo o array de nível de operação, e rótulos de runs omitidos selecionando a primeira família

fontSize de runs omitido usa o fontSize da operação do campo quando positivo, caso contrário 12; um value opcional precisa corresponder exatamente ao texto simples derivado dos runs, usando um carriage return entre parágrafos explícitos

Runs estilizados exigem appearance=true; forms.read retorna o XHTML realmente armazenado em richText para um campo rich

A ABI retém o layout existente da operação dela e prepara saída binária e de resultado completas antes de commitar o novo contexto carregado; escritas com falha ou cancelamento preservam o campo anterior

Aceitação e trabalho restante

Tests/Linux/Run-HeadlessRichTextAcceptance.sh e Tests/Linux/HotPDFHeadlessRichTextTests.pas exercitam PDFs reais salvos; Verify-HeadlessRichText.py checa de forma independente XHTML, valores, quatro programas reais de fontes, mapas de glyphs, paths de decorações e pixels visíveis de widgets

Esta API aceita runs tipados e consome as oportunidades default do Unicode 17 sobre parágrafos completos, preservando grupos de palavras, non-breaking spaces, pontuação e números através de mudanças de estilos; grupos que cabem numa linha nova se movem juntos usando os advances reais estilizados de fontes deles

Quebra de grupos de estilo também retém baselines compartilhadas para tamanhos mistos em pontos e coalesce CRLF através de costuras de estilos tanto no layout real quanto no XHTML canônico

Ajuste de graphemes entre estilos atribui clusters lógicos completos largos demais a uma única linha física, retendo fragmentos reais de fonte, cor e tamanho e o comportamento existente de clipping para um cluster indivisível mais largo que o retângulo

A junção contextual usa o texto Unicode ao redor, e cada linha física real retém a direção do parágrafo enquanto ordena items mistos bidi e de scripts através de estilos tipados

Marks entre estilos usam anexações GPOS genuínas para glyphs reais de base, ligaduras e marks precedentes, preservando cada fonte de estilo, tamanho em pontos e cor e os overhangs visíveis de glyphs

A troca rich de FDF e XFDF decodifica o perfil delimitado suportado de estilos XHTML em fontes realmente embutidas e aparências salvas

Embeddings direcionais explícitos, overrides, isolates e o contexto de brackets pareados sobrevivem ao wrapping automático através de estilos tipados; um order lógico compartilhado de parágrafos fornece reordenação independente de linhas físicas e shaping contextual nativo de glyphs

Clusters contendo apenas controles direcionais Unicode preservam o valor lógico original e o texto de seleção sem consumir character spacing; clusters visíveis e espaços comuns retêm os advances configurados deles

O line order derivado de parágrafos e a reordenação de linhas em cache preservam fronteiras completas de scalars UTF-16 e resetam o whitespace final de linhas físicas sem mutar o record compartilhado do parágrafo

Famílias de fontes nomeadas fornecem seleção explícita de runs tipados e XHTML delimitado com fontes reais de famílias, advances independentes e import de formulários ciente de famílias

O fallback de famílias fornecidas seleciona graphemes completos através de costuras autoradas de estilos, e os callbacks JSON e versionados do Linux vinculam o mesmo comportamento a programas de fontes realmente configurados

Folhas de estilo internas aplicam a cascata compartilhada delimitada de selectors a valores rich nativos e imports FDF/XFDF; XHTML/CSS mais amplo, folhas de estilo externas e layout geral permanecem trabalho ativo

Comportamento nativo de campos rich-text · API do documento