Campos nativos de Rich Text

SetRichTextFieldValueWithAppearance escreve V de texto plain sincronizado, RV XHTML canónico, a flag de campos RichText e aparências reais para todos os widgets existentes

Cada run fornece texto Unicode, um estilo de tipo de letra, um tamanho positivo em pontos, cor RGB, underline ou strikeout opcionais, quebras de parágrafos e alinhamento à esquerda, ao centro ou à direita; os quatro tipos de letra de estilos são programas TrueType Unicode fornecidos por quem chama, com as verificações existentes de edição e de embedding

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

A aparência usa tipos de letra de estilos realmente incorporados, mapeamentos de glyphs e fragmentos medidos de palavras com linhas de base partilhadas; fragmentos repetidos partilham cada programa de tipos de letra de estilos 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 multilinha; o wrap medido, as rotações de widgets e o clipping usam o retângulo real do widget

A atualização tipada pode ativar rich text num campo de texto plain, enquanto combinações de password, seleção de ficheiros e comb são rejeitadas antes da mutação

Só de leitura, MaxLen, políticas autenticadas de documentos assinados, permissões encriptadas de preenchimento de formulários, cancelamento e orçamentos de objetos, tipos de letra, glyphs e saída continuam a aplicar-se

Todas as atualizações rich preparam overrides de V, RV, Ff e AP antes de alterar o documento; strings e streams guardadas mantê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; os bytes de tipos de letra de estilos são cobrados de forma agregada

Chamadas ordinárias de SetTextFieldValueWithAppearance sobre um campo rich existente substituem o conteúdo dele pelo estilo plain fornecido e sincronizam o RV; chamadas de SetTextFieldValue apenas de valores também sincronizam o RV e mantêm NeedAppearances=true

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

O primeiro run de cada parágrafo seleciona o alinhamento dele mesmo quando esse run tem texto vazio; alterações inline de estilos e quebras explícitas de linhas mantêm esse alinhamento de parágrafos

Palavras demasiado largas em campos multilinha com wrap dividem-se nas fronteiras de graphemes estendidos do Unicode 17, preservando sequências de combinação, scalars suplementares, sequências de emoji e texto original V/RV; um cluster indivisível mais largo que o campo permanece intacto e cortado

Contornos retangulares e circulares são pintados antes do clip de conteúdo, e linhas multilinha selecionadas recebem fundos azuis reais usando o ascent, o descent e o espaçamento medidos de cada linha rich

ABI nativa JSON

{"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 ao nível da edição a sobrepor o array ao nível da operação e etiquetas de runs omitidas a selecionar 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 tem de corresponder exatamente ao texto plain derivado dos runs, usando um carriage return entre parágrafos explícitos

Runs com estilo exigem appearance=true; forms.read devolve o XHTML realmente guardado em richText para um campo rich

A ABI mantém o layout existente dela de operações e prepara saída binária e de resultados completa antes de confirmar o novo contexto carregado; escritas falhadas ou cancelamento preservam o campo anterior

Aceitação e trabalho restante

Tests/Linux/Run-HeadlessRichTextAcceptance.sh e Tests/Linux/HotPDFHeadlessRichTextTests.pas exercitam PDFs realmente guardados; Verify-HeadlessRichText.py verifica de forma independente XHTML, valores, quatro programas reais de tipos de letra, mapas de glyphs, caminhos de decorações e píxeis visíveis de widgets

Esta API aceita runs tipados e consome oportunidades por defeito do Unicode 17 sobre parágrafos completos, preservando grupos de palavras, espaços não quebráveis, pontuação e números através de mudanças de estilos; grupos que cabem numa linha fresca movem-se em conjunto usando os avanços reais de tipos de letra com estilo deles

O wrap de grupos de estilos também mantém linhas de base partilhadas para tamanhos em pontos mistos e funde CRLF através de costuras de estilos tanto no layout real como no XHTML canónico

O ajuste de graphemes entre estilos atribui clusters lógicos completos demasiado largos a uma linha física, mantendo fragmentos reais de tipo de letra, cor e tamanho e o comportamento existente de clipping para um cluster indivisível mais largo que o retângulo

A ligação contextual usa o texto Unicode envolvente e cada linha física real mantém a direção do parágrafo enquanto ordena itens mistos de bidi e de scripts através de estilos tipados

As marcas entre estilos usam anexos GPOS genuínos para glyphs reais de base, ligaduras e marcas precedentes, preservando o tipo de letra, o tamanho em pontos e a cor de cada estilo e os transbordos visíveis de glyphs

A troca rich de FDF e XFDF descodifica o perfil delimitado suportado de estilos XHTML em tipos de letra realmente incorporados e aparências guardadas

Embeddings direcionais explícitos, overrides, isolates e contexto de pares de parênteses retos sobrevivem ao wrap automático através de estilos tipados; uma ordem partilhada única de parágrafos lógicos fornece reordenação independente de linhas físicas e shaping contextual nativo de glyphs

Clusters contendo apenas controlos direcionais Unicode preservam o valor lógico original e o texto de seleção sem consumir espaçamento de carateres; clusters visíveis e espaços ordinários mantêm os avanços configurados deles

A ordem de linhas derivada de parágrafos e a reordenação de linhas em cache preservam fronteiras completas de scalars UTF-16 e reiniciam o whitespace final de linhas físicas sem mutar o registo partilhado do parágrafo

Famílias nomeadas de tipos de letra fornecem seleção explícita de runs tipados e XHTML delimitado com tipos de letra reais de famílias, avanços independentes e importação de formulários consciente de famílias

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

Folhas de estilo internas aplicam a cascata partilhada delimitada de seletores a valores rich nativos e a importações FDF/XFDF; XHTML/CSS mais abrangente, folhas de estilo externas e layout geral continuam a ser trabalho ativo

Comportamento nativo de campos rich text · API do documento