Estilos e captions booleanos automáticos no XFA

Units: HPDFXFA e HPDFXFAHeadless

HPDFXFAWriteHeadlessPDF consome as propriedades efetivas de checkButtons e cria appearance streams nativos de checkboxes e radios a partir do layout XFA real

Marcas e contornos

O tamanho do checkButton tem default 10pt e controla a região da marca quadrada dentro da região de conteúdo do campo; medidas explícitas de tamanho, margens de campos e UI, e alinhamento horizontal e vertical de parágrafos determinam sua posição

As formas square e round determinam o contorno; a marca asserida default é um X para contorno quadrado e um círculo preenchido para contorno redondo, seguindo a especificação de checkButton do XFA 3.3

Marcas explícitas de check, circle, cross, diamond, square e star usam paths vetoriais reais; elas não dependem da fonte fornecida conter um símbolo de checkbox

O primeiro edge da borda da UI fornece sua espessura, cor e visibilidade; o contorno default é preto e de 0.5pt, enquanto a cor efetiva da fonte do campo fornece a cor da marca asserida

A marca encolhe para a região restante de conteúdo quando seu tamanho configurado excede aquela região; uma caption ou margem que não deixa região de conteúdo faz a preparação do candidato falhar

Captions Unicode escalares

Texto escalar de captions retém Unicode e delimitadores exatamente, e vira um Form XObject real de fonte embutida referenciado por todas as aparências off, on e neutral daquele widget

A caption compartilha uma aparência e um grafo de fontes entre seus estados, e suas unidades UTF-16 são contadas uma vez por widget em TXFAHeadlessPDFResult.GlyphUnits

Left e right reservam uma largura de caption, enquanto top e bottom reservam uma altura; uma reserva omitida ou zero usa os advances reais de glyphs e as métricas de linha da fonte fornecida para calcular a extensão natural da caption

Captions inline precedem a marca e ignoram uma reserva explícita; margens de captions recuam o texto dentro da região alocada dele

Um tamanho e cor de fill da fonte de captions sobrepõem o tamanho e a cor do campo; o alinhamento de parágrafos da caption sobrepõe o alinhamento do campo, enquanto CaptionFontFamilies pode fornecer faces reais de estilos e famílias nomeadas

Captions hidden e inactive não ocupam região e não alocam grafo de fontes; captions invisible retêm a região delas sem pintar nem alocar glyphs de captions

O consumer de captions rich consome adicionalmente XHTML efetivo, faces reais configuradas de estilos e seleção de famílias, métricas mistas de linhas e alturas de captions com wrapping

Terceiros estados de checkboxes

Quando allowNeutral está habilitado, o terceiro item salvo é o export neutral do checkbox; valores correspondentes retêm um /V nativo distinto e um widget /AS com a própria entrada /AP /N dele

A aparência neutral desenha o contorno vazio e a mesma caption; ela não desenha a marca asserida

O array /Opt do checkbox mantém uma entrada de export on para seu widget único, como exigido pelo modelo de campos de botões do PDF; um terceiro estado salvo de aparências não adiciona uma segunda opção de widget

Exports vazios, o nome reservado Off e nomes começando com XFAOn recebem aliases nativos de estados livres de colisões, usando seus bytes UTF-8 como hexadecimal maiúsculo depois de XFAOn; o terceiro export original pode ser recuperado do nome de estado salvo dele

Um membro de radio ignora um terceiro item e retém o dicionário existente de aparências de dois estados dele e a identidade de grupo de escopos de template/dados

O adapter persiste o grafo inicial de estados; uma operação posterior nativa de edição de botões da aplicação tem seu próprio contrato de estados e aparências

Propriedades nativas de instâncias e transações

Os defaults de tamanho, forma, marca e allowNeutral do checkButton estão disponíveis pelo schema nativo do runtime; propriedades ausentes de bordas e margens de checkButtons podem ser criadas pela transação existente de propriedades

Propriedades efetivas por instância repetida de checkButton, caption, font e margin sobrevivem a SaveToBytes e controlam imediatamente o widget PDF correspondente criado automaticamente; a primeira instância repetida retém suas propriedades independentes

Valores literais UTF-8 de origem de eventos e de bindings Unicode retêm os escalares deles antes de o XDP salvo ser convertido, incluindo texto de captions alterado por um evento nativo JavaScript; veja HPDFXFAExecuteJavaScriptEvent

Falha de script restaura o XML nativo exato antes da criação, e falhas de preparação preservam posição, comprimento e bytes do destino; orçamentos de glyphs, objetos e fontes e cancelamento retêm a fronteira transacional do criador automático

Fontes de aceitação

Tests/Linux/XFAHeadlessBooleanStylesTests.pas produz pares reais de marcas, captions, estados neutral e reservados, mudanças de scripts em instâncias repetidas e casos de rollback, sem UI de reader

Tests/Linux/Verify-XFAHeadlessBooleanStyles.py checa dicionários reais salvos de estados, recursos compartilhados de fontes, placement de captions, texto Unicode e pixels distintos de marcas com pypdf e MuPDF

Metadados de callbacks booleanos descreve as dicas aditivas de transporte consumidas pelo criador nativo