Transport standard de aparências de stamps XFDF

Anotações Stamp podem exportar e importar as streams reais de aparências PDF e os dicionários de recursos delas através do elemento appearance do XFDF Adobe

O perfil stamp-typed-xml-v1 usa XML tipado UTF-8 codificado em base64, conforme descrito pela especificação Adobe XFDF 3; o payload descodificado representa objetos PDF em vez de um ficheiro PDF ou FDF completo

Recursos mapeados

O DICT KEY="AP" de topo contém uma stream de Form normal N obrigatória e streams opcionais de rollover R e de down D

Forms mantêm o BBox finito de quatro números, o Matrix opcional de seis números e o grafo suportado de recursos deles, incluindo tipos de letra e os programas incorporados deles, imagens e soft masks, espaços de cor, padrões, shadings, funções e estados de gráficos

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

O DATA de streams suporta MODE="RAW" ou MODE="FILTERED" com ENCODING="HEX" ou ENCODING="ASCII" de sete bits; RAW mantém os bytes codificados e o Filter/DecodeParms deles, enquanto FILTERED instala bytes descodificados sem metadados obsoletos de filtragem

A exportação usa dados hexadecimais RAW e regenera o Length de streams a partir de bytes reais; streams encriptadas autenticadas são descodificadas ou desencriptadas antes da troca e encriptadas corretamente na revisão guardada

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

Bytes de programas de tipos de letra incorporados e as flags de embedding deles são preservados sem alterar bits de licenças nem substituir por um programa de tipo de letra diferente

APIs e callbacks

Use HPDFExportHeadlessAnnotationsXFDF e SaveAnnotationsXFDFToFile para transações nativas, ou as sobrecargas delimitadas de HPDFXFDFExportAnnotations e HPDFXFDFImportAnnotations para adaptadores próprios de grafos de quem chama

Os trabalhos de ficheiros e callbacks V1 existentes de Windows e os callbacks V1 de Linux usam as operações existentes deles de anotações e os layouts de registos delas

As capacidades mantêm appearanceImport=false para aparências gerais de anotações e acrescentam 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 falhar a transação completa

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

A importação mantém o estado atual do grafo não guardado, a segurança AES R5/R6 e as restrições autenticadas de certificação; P1/P2 negam alterações de anotações e P3 preserva o prefixo original assinado e a integridade genuína de assinaturas

Uma importação vazia autorizada devolve zero e preserva os bytes PDF atuais exatos quando não há alterações não guardadas; alterações dirty do grafo são guardadas sem serem descartadas

Contextos de callbacks de Windows e de Linux adotam um PDF preparado apenas depois da saída PDF, da saída de resultados JSON e da verificação final de cancelamento terem sucesso; callbacks falhados ou parciais retêm o contexto anterior, e o primeiro escritor falhado permanece persistente

Importação apenas de anotações aceita contentores fields vazios e declarações de campos sem valores como metadados no-op; valores reais de formulários e atualizações rich de campos exigem a operação separada autenticada de dados de formulários

Trabalho restante

Transport geral de APs de anotações, dicionários de estados de aparências, valores de recursos de strings, referências DEFINE/REF não vazias, grafos cíclicos, Redact overlayappearance, substituição/remoção de anotações e intercâmbio de anotações FDF continuam a ser trabalho separado

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

O adaptador partilhado delimitado reserva chaves brutas de anotações e grafos AP expandidos antes da conversão de payloads, e reserva whitespace base64 e DATA descodificado antes de alocar essas representações; a conversão de PDF names usa passagens lineares com checkpoints de cancelamento