Troca nativa de anotações XFDF

HPDFHeadlessXFDF exporta anotações mapeadas a partir de um grafo nativo de PDFs carregados e prepara importações de anotações XFDF como uma revisão incremental independente

Use HPDFExportHeadlessAnnotationsXFDF para bytes XML UTF-8 e SaveAnnotationsXFDFToFile para acrescentar anotações a um documento existente sem alterar o grafo fonte carregado

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, assunto, flags, opacidade, cores e propriedades suportadas de bordas

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

Arrays vazios de componentes de cores preservam cores transparentes; cores fonte 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

A exportação de FileAttachment prefere o nome Unicode do ficheiro e preserva metadados de ficheiros externos mesmo quando não existe stream incorporada; dados de ficheiros e de sons incorporados são descodificados em base64 canónico delimitado e importados como streams indiretas reais, incluindo streams vazias

Anotações Popup são representadas como elementos popup aninhados e importadas com ligações indiretas de Parent, Popup e páginas; as respostas resolvem-se numa segunda passagem contra nomes de anotações existentes e recém-acrescentados, incluindo referências antecipadas

Conteúdos rich preservam o namespace XHTML, o texto misto ordenado e os bindings herdados de namespaces

Transações e permissões

As importações acrescentam anotações e rejeitam nomes duplicados, alvos de resposta ambíguos ou em falta e valores mapeados inválidos antes da publicação

Uma importação falhada ou cancelada preserva o ficheiro de destino e o grafo fonte carregado; uma importação bem-sucedida também deixa a fonte carregada inalterada, por isso carregue o ficheiro guardado quando quiser adotar a revisão nova dele

A exportação exige permissão de extração e a importação exige permissão de anotações; a segurança AES-256 R5/R6 permanece na revisão guardada

A política real de certificação é autenticada através do workflow nativo de assinaturas: P1 e P2 impedem alterações de anotações, enquanto P3 permite uma revisão de anotações que preserve os bytes originais assinados

Limites

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

Números mapeados têm de ser finitos e dentro de um valor absoluto de um milhão, com restrições adicionais para contagens de coordenadas, opacidade, tamanhos de amostras e outros valores tipados

A admissão XML de documentos inteiros verifica encoding, namespaces, atributos duplicados, entidades e a estrutura completa antes do mapeamento de anotações; o processamento de DTDs e de entidades externas está desativado

Fronteiras de operações

O transport de aparências de stamps standard preserva streams de Form reais e recursos delimitados e acíclicos de tipos de letra, imagens e gráficos através de XML tipado em base64

Transport geral de APs de anotações, dicionários personalizados de anotações, substituição/remoção de anotações, ações arbitrárias e dados de anotações FDF continuam a ser trabalho separado

A síntese e a renderização de aparências de anotações são operações separadas; importar propriedades geométricas e de texto não cria uma stream AP

Outros subtipos de anotações fonte são ignorados durante a exportação e contados no resultado; valores mapeados selecionados malformados fazem falhar a operação sem XML parcial devolvido

A API nativa Pascal funciona em Windows e Linux; a ABI C versionada de Linux também expõe operações JSON de anotações por callbacks, e trabalhos de ficheiros e callbacks V1 de Windows expõem a mesma troca mapeada de anotações

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

A 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

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