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