Criação automática de escolhas e Booleanos XFA
Unidade: HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF consome o layout XFA real e constrói campos de escolhas, widgets de checkboxes, pais e membros de radios sem slots preparados de PDFs
Campos de escolhas
Campos de combos e de listas usam dicionários nativos /FT /Ch; listas XFA separadas de apresentação e de saves tornam-se pares /Opt de exportação/apresentação, preservando Unicode, delimitadores, exportações explicitamente vazias, itens escalares tipados e whitespace envolvente de exportações
Uma combo editável mantém o valor de texto livre dela; uma escolha não editável exige que a exportação selecionada exista na lista de opções dela
Valores multiseleção tornam-se um array nativo ordenado de /V e índices /I correspondentes pela ordem das opções; entrada ordinária apenas de valores usa exportações separadas por quebras de linhas e rejeita valores selecionados duplicados durante a preparação
O scripting de itens de escolhas preserva índices explícitos exatos para exportações duplicadas e vazias através de XDP guardado, pelo que os arrays /I de PDFs deles, os valores /V exportados e as aparências de etiquetas de apresentação deles permanecem inequívocos
A validação de seleções duplicadas compara strings exatas sem reordenar a lista escrita de seleções; uma heapsort de índices substitui comparações quadráticas de pares e verifica o cancelamento ao longo da validação de unicidade
O texto de aparências de escolhas usa etiquetas de apresentação, enquanto /V usa valores de exportação; as aparências de listas contêm uma janela visível medida com a primeira seleção, um índice de topo /TI exato e destaques relativos de linhas selecionadas mantendo o grafo completo de opções
As flags nativas de combos, edição, multiseleção, confirmação de seleções e readOnly usam tokens exatos de inteiros PDF, para que um bit alto de flags não possa apagar o bit readOnly
Estados de checkboxes e radios
Checkboxes contêm Form XObjects reais de Off e de estados on; os estilos e captions Booleanos consomem formas reais de marcadores, tamanho, contornos de UI, cores de campos, captions Unicode escalares e terceiros estados de checkboxes sem depender de um caráter de visto no tipo de letra fornecido
O /Opt nativo mantém o valor de exportação XFA; a exportação reservada Off e exportações começando por XFAOn recebem aliases de estados ativos sem colisões, enquanto as strings reais de exportações delas permanecem inalteradas em /Opt
Membros de radios partilham um pai nativo por caminho de grupos de exclusão de templates e caminho nativo de contextos de dados; grupos repetidos recebem /Kids, /V, /Opt e estados de widgets /AS independentes mesmo quando os nomes apresentados dos grupos deles são idênticos
Exportações iguais dentro de um grupo de radios definem RadiosInUnison e ativam todos os membros correspondentes; a política de edição de documentos inteiros e o acesso a grupos de exclusão determinam a flag readOnly do pai
Layout de grupos de exclusão tb e lr-tb é despachado com o âmbito nativo atual de dados, e grupos de exclusão posicionados aplicam a origem x/y própria deles aos membros deles
Persistência de runtime e preparação
Leituras e atribuições de rawValue de grupos de exclusão participam na transação nativa existente de eventos, células de bindings, sincronização de formulários/dados e rollback; XDP guardado de runtimes pode ser passado diretamente ao criador automático
A fixture de aceitação muta a segunda combo, checkbox e grupo de exclusão repetidos, lê o grupo através do alias de dados dele imediatamente, grava XDP e verifica de forma independente os valores, estados e aparências PDF resultantes mantendo a primeira instância
Todas as falhas de preparação de candidatos preservam bytes, comprimento e posição do destino; arrays de opções de escolhas, nomes de campos, exportações Boolean, contagens de widgets, alocações de grafos e texto agregado de aparências mantêm os limites existentes de recursos
Falha de I/O no destino mantém a fronteira de streams de quem chama descrita pela criação automática de XFA
Trabalho restante de consumidores
Captions rich, dimensionamento de captions com wrap, estilos de contornos por borda e preenchidos, commits posteriores de estados de widgets, scroll interativo posterior de listas, ambiguidade apenas de valores para exportações contendo quebras de linhas, layouts avançados de grupos de exclusão e campos de assinaturas continuam a ser trabalho separado de integração
Os metadados de escolhas documentam as dicas aditivas de callbacks usadas por estes consumidores nativos