Captions rich automáticas do XFA
Units: HPDFXFA, HPDFXFAHeadless e HPDFHeadlessAppearance
HPDFXFAWriteHeadlessPDF consome os valores efetivos de captions de checkboxes e radios diretamente do XDP salvo e cria Forms nativos reais de aparências com fontes embutidas
Conteúdo efetivo de captions
Valores escalares de captions e conteúdo de corpos XHTML exData viram texto nativo; o corpo precisa usar o namespace http://www.w3.org/1999/xhtml
Um overlay parcial de formulário por instância repetida muda o texto e os atributos do elemento correspondente do template, retendo irmãos de template inalterados e o namespace XHTML deles
Uma substituição bem-sucedida do payload inteiro por exData.loadXML fornece o corpo realmente importado, em vez de mesclar conteúdo obsoleto do template de volta à caption
Comentários e processing instructions permanecem no XDP salvo original, mas são omitidos da cópia de rendering, de modo que os payloads deles nunca virem texto visível de captions
A cópia de rendering é delimitada a 4096 nós, profundidade 64, 65536 steps de trabalho de overlays e 1 MiB de XHTML da origem e serializado cobrado; o decoder nativo e os builders de aparências retêm seus próprios limites de runs, glyphs e bytes
Faces e estilos reais de fontes
Forneça CaptionFontFamilies para programas reais regular, bold, italic e bold-italic e famílias nomeadas
O decoder nativo XHTML existente resolve estilos inline, fronteiras de parágrafos, listas de famílias, cores, tamanhos, underline e strike; o tamanho, weight, posture, typeface e cor de fill da fonte de captions escalares fornecem o estilo default
Uma face ou glyph solicitado ausente faz a preparação falhar; este consumer não fabrica aparências bold nem italic nem descobre fontes externas
Medição e placement
Medição e pintura de captions usam o mesmo layout nativo rich e os programas de fontes fornecidos, incluindo advances reais de glyphs, ascent e descent específicos de estilos, baselines comuns de linhas e wrapping
Uma reserva fixa de left ou right restringe a largura do texto; uma reserva positiva de top ou bottom permite wrapping dentro da largura disponível do campo
Uma reserva omitida, zero ou o default -1 do schema usa a extensão natural da caption sem wrapping automático de texto; fronteiras explícitas de parágrafos permanecem quebras de linha, e texto que excede um retângulo fixo de campo é clipado
Capturas left e right automáticas usam a largura natural delas; captions inline ignoram a reserva explícita tanto na medição quanto no placement
Margens de captions reduzem a região real de texto, e o alinhamento horizontal e vertical de captions controla o placement da aparência resultante
O comportamento da reserva segue a definição de reserva de captions do XFA 3.3
Altura natural inclui a extensão final métrica da linha mais o padding nativo de dois pontos em cada lado; ela exclui o leading final não usado após a última linha
Captions hidden e inactive não consomem região; captions invisible reservam a região medida delas sem pintar nem cobrar glyphs de captions
Um Form real de caption é compartilhado entre os estados off, on e neutral do mesmo widget; instâncias repetidas retêm grafos independentes de conteúdo e estilos
Margens de parágrafos e CSS customizado de line-height, imagens de captions e outros payloads de captions não texto, captions rich de push buttons e reconstrução interativa posterior de aparências retêm trabalho separado de consumers
Transações e aceitação
Um evento nativo bem-sucedido de propriedades pode ser salvo e recarregado antes da criação automática do PDF; falha de script restaura os bytes exatos do XML nativo, e falhas de orçamento de preparação ou cancelamento preservam os bytes, comprimento e posição do destino
Escritas no destino começam somente depois que o candidato completo tem sucesso; um erro do stream do próprio chamador durante a gravação segue a semântica daquele stream e não pode ser revertido para um destino arbitrário não seekable
Tests/Linux/XFAHeadlessRichCaptionTests.pas produz PDFs reais de captions estilizadas, com wrapping, selecionadas por família e não visíveis; XFAHeadlessRichCaptionRuntimeTests.pas cobre overlays repetidos, substituição completa de XML e rollback
XFAHeadlessRichCaptionBudgetTests.pas exercita falhas reais de recursos e fronteiras selecionadas de cancelamento, enquanto HeadlessTextExtentTests.pas expõe as extensões nativas medidas de linhas
Verify-XFAHeadlessRichCaptions.py inspeciona grafos de PDFs salvos, bytes exatos de programas de fontes fornecidas, referências compartilhadas, texto Unicode, matrizes raw de texto, métricas fontTools e pixels renderizados de MuPDF, sem abrir UI de reader
TextHeight somente leitura · Metadados de callbacks booleanos · Marcas e estados booleanos