Transporte padrão de aparências de stamps XFDF

Anotações Stamp podem exportar e importar seus appearance streams PDF reais e dicionários de recursos através do elemento appearance do XFDF da Adobe

O perfil stamp-typed-xml-v1 usa typed XML UTF-8 codificado em base64, como descrito pela especificação Adobe XFDF 3; o payload decodificado representa objetos PDF, e não um arquivo PDF ou FDF completo

Recursos mapeados

O DICT KEY="AP" de nível superior contém um stream Form N normal obrigatório e streams R rollover e D down opcionais

Forms retêm seu BBox finito de quatro números, Matrix opcional de seis números e o grafo suportado de recursos, incluindo fontes e seus programas embutidos, imagens e soft masks, color spaces, patterns, shadings, funções e graphics states

Valores tipados incluem DICT, STREAM, ARRAY, INT, FIXED, NAME, BOOL e NULL; chaves de dicionários e valores de names preservam seus PDF names semânticos, e tokens válidos de números da origem preservam a precisão decimal

Stream DATA suporta MODE="RAW" ou MODE="FILTERED" com ENCODING="HEX" ou ENCODING="ASCII" de sete bits; RAW retém os bytes codificados e seus Filter/DecodeParms, enquanto FILTERED instala bytes decodificados sem metadados velhos de filtering

O export usa dados RAW hexadecimais e regenera o Length do stream a partir dos bytes reais; streams criptografados autenticados são decodificados ou descriptografados antes da troca e criptografados corretamente na revisão salva

Recursos acíclicos compartilhados são expandidos como valores equivalentes e importados com referências de objetos independentes; este perfil não preserva a identidade de referências

Bytes de programas de fontes embutidas e as flags de embutimento delas são preservados sem mudar bits de licença nem substituir por outro programa de fonte

APIs e callbacks

Use HPDFExportHeadlessAnnotationsXFDF e SaveAnnotationsXFDFToFile para transações nativas, ou os overloads delimitados de HPDFXFDFExportAnnotations e HPDFXFDFImportAnnotations para adapters de grafos de posse do chamador

Os file jobs e callbacks V1 do Windows e os callbacks V1 do Linux existentes usam suas operações e layouts de records existentes de anotações

As capabilities retêm appearanceImport=false para aparências gerais de anotações e adicionam stampAppearanceImport=true, appearanceProfile="stamp-typed-xml-v1", appearanceTypes=["stamp"], appearanceDataModes=["RAW","FILTERED"], appearanceEncodings=["ASCII","HEX"] e appearanceResources="acyclic-expanded-graph"

Transações e limites

XML de entrada, base64, names, encoding de streams, tipos de recursos, chaves semânticas de dicionários e geometria de Forms são validados antes da publicação; dados malformados, ciclos, limites cumulativos esgotados ou cancelamento fazem a transação completa falhar

Os limites XFDF cobrem entrada/saída totais, nós XML e de grafos, profundidade, armazenamento de streams e reservas de trabalho ao longo da operação de anotações

O import retém o estado atual não salvo do grafo, a segurança AES R5/R6 e as restrições autenticadas de certificação; P1/P2 negam mudanças de anotações e P3 preserva o prefixo original assinado e a integridade genuína da assinatura

Um import vazio autorizado retorna zero e preserva os bytes PDF atuais exatos quando não há mudanças não salvas; mudanças dirty do grafo são salvas sem serem descartadas

Contextos de callbacks do Windows e do Linux adotam um PDF preparado somente depois que a saída PDF, a saída JSON de resultado e a checagem final de cancelamento tiverem sucesso; callbacks com falha ou parciais retêm o contexto anterior, e o primeiro writer com falha permanece sticky

Import somente de anotações aceita containers fields vazios e declarações de campos sem valor como metadados no-op; valores reais de formulários e atualizações de campos rich exigem a operação separada autenticada de form data

Trabalho restante

Transporte geral de APs de anotações, dicionários de estados de aparências, valores de recursos string, referências DEFINE/REF não vazias, grafos cíclicos, overlayappearance de Redact, substituição/remoção de anotações e troca FDF de anotações permanecem trabalho separado

Anotações geométricas e de texto sem aparência de stamp transportada retêm seu comportamento existente; esta operação não sintetiza aparências arbitrárias de anotações nem executa actions

O adapter compartilhado delimitado reserva as chaves raw das anotações e os grafos AP expandidos antes da conversão de payloads, e reserva o whitespace base64 e o DATA decodificado antes de alocar essas representações; a conversão de PDF names usa passadas lineares com checkpoints de cancelamento