Troca nativa de anotações XFDF

HPDFHeadlessXFDF exporta anotações mapeadas de um grafo nativo de PDF carregado e prepara imports de anotações XFDF como uma revisão incremental independente

Use HPDFExportHeadlessAnnotationsXFDF para bytes XML UTF-8 e SaveAnnotationsXFDFToFile para anexar anotações a um documento existente sem alterar o grafo da origem carregada

Perfil mapeado de anotações

O perfil mapeia Text, FreeText, Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, StrikeOut, Squiggly, Stamp, Ink, Caret, FileAttachment, Sound, Redact e Link

Valores comuns incluem página, retângulo, contents Unicode, autor, nome da anotação, datas, subject, flags, opacidade, cores e propriedades de bordas suportadas

Valores específicos de tipos incluem coordenadas de quadriláteros, vértices, gestos de ink, terminações de linhas e geometria de leaders, propriedades de FreeText intent/callout/fringe/texto default, estado repeat de Redact, actions de links URI ou Named, actions GoToR remotas e destinos nomeados ou explícitos locais e actions GoTo

Arrays vazios de componentes de cor preservam cores transparentes; cores de origem Gray e CMYK são mapeadas para valores RGB XFDF, e componentes RGB são quantizados para a representação hexadecimal de seis dígitos do formato

Exports de FileAttachment preferem o nome Unicode do arquivo e preservam metadados de arquivos externos mesmo quando não existe stream embutido; dados de arquivos e sons embutidos são decodificados em base64 canônico delimitado e importados como streams indiretos reais, incluindo streams vazios

Anotações Popup são representadas como elementos popup aninhados e importadas com links indiretos Parent, Popup e página; replies são resolvidos numa segunda passada contra nomes de anotações existentes e recém-anexados, incluindo referências para frente

Rich contents preservam o namespace XHTML, o mixed text ordenado e os bindings herdados de namespaces

Transações e permissões

Imports anexam anotações e rejeitam nomes duplicados, alvos de reply ambíguos ou ausentes e valores mapeados inválidos antes da publicação

Um import com falha ou cancelado preserva o arquivo de destino e o grafo da origem carregada; um import bem-sucedido também deixa a origem carregada inalterada, então carregue o arquivo salvo quando quiser adotar a revisão nova dele

Export exige permissão de extração e import exige permissão de anotações; a segurança AES-256 R5/R6 permanece na revisão salva

A política real de certificação é autenticada pelo workflow nativo de assinaturas: P1 e P2 impedem mudanças de anotações, enquanto P3 permite uma revisão de anotações que preserva os bytes originais assinados

Limites

THPDFHeadlessXFDFOptions delimita bytes de entrada/saída, contagem de anotações, nós de grafo e XML, profundidade e armazenamento de trabalho, com cancelamento cooperativo

Números mapeados precisam ser finitos e dentro de um valor absoluto de um milhão, com constraints adicionais para contagens de coordenadas, opacidade, tamanhos de samples e outros valores tipados

A admissão de XML de todo o documento checa encoding, namespaces, atributos duplicados, entidades e estrutura completa antes do mapeamento de anotações; processamento de DTD e entidades externas está desabilitado

Fronteiras de operações

O transporte de aparências padrão de stamps preserva streams reais de Forms e recursos acíclicos delimitados de fontes, imagens e gráficos através de typed XML em base64

Transporte geral de APs de anotações, dicionários customizados de anotações, substituição/remoção de anotações, actions arbitrárias e dados FDF de anotações permanecem trabalho separado

Síntese e rendering de aparências de anotações são operações separadas; importar propriedades geométricas e de texto não cria um stream AP

Outros subtipos de anotações da origem são pulados durante o export e contabilizados no resultado; valores mapeados selecionados malformados fazem a operação falhar sem XML parcial retornado

A API nativa Pascal funciona no Windows e no Linux; a C ABI versionada do Linux também expõe operações JSON de anotações baseadas em callbacks, e file jobs e callbacks V1 do Windows expõem a mesma troca mapeada de anotações

Remoção explícita de anotações

Remoção de anotações por página e nome é uma operação separada; omitir uma anotação do FDF ou XFDF importado não a apaga

Exclusão de field-tree de Widgets e apagamento seguro exigem operações separadas; a remoção incremental retém bytes anteriores do PDF