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