Troca de anotações XFDF em Windows
Trabalhos de ficheiros de Windows e hpdf_document_execute_json_v1 exportam anotações mapeadas e acrescentam anotações XFDF através da ponte autenticada transacional de Windows
Os tipos e propriedades mapeados são partilhados com o XFDF nativo de anotações, incluindo streams delimitadas binárias de anexos/sons, conteúdos rich Unicode, objetos popup e respostas antecipadas
Trabalhos de ficheiros
{
"schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
"input": "source.pdf", "annotationInput": "annotations.xfdf",
"output": "annotated.pdf", "password": "owner",
"annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
annotations.export usa o mesmo formato, entrada, saída e palavra-passe opcional, escrevendo XFDF UTF-8 em vez de um PDF; a importação exige annotationInput
A saída não pode ser alias da entrada PDF, da entrada XFDF nem dos ficheiros fornecidos de confiança/evidência, incluindo um hard link existente; a publicação reserva um irmão temporário exclusivo, valida resultados delimitados, faz flush e fecha o candidato e depois substitui atomicamente o alvo
Falha e cancelamento preservam um alvo completo existente e removem o ficheiro temporário da operação
Callbacks V1 originais
Use o hpdf_operation_v1 e o hpdf_io_v1 inalterados de hotpdf_abi.h; a troca de anotações não exige extensão de tipos de letra
Carregue primeiro o PDF de destino com hpdf_document_load_from_io; a importação lê XFDF de InputIO, escreve o PDF candidato em OutputIO e escreve JSON delimitado em ResultIO; a exportação lê o PDF ativo próprio e escreve XFDF em OutputIO
Para entrada encriptada, repita a palavra-passe da operação usada para autenticar o PDF carregado; esta operação não retém uma palavra-passe implícita da chamada anterior de carregamento
Apenas callbacks bem-sucedidos de PDFs e de resultados seguidos do checkpoint final de cancelamento adotam o documento novo e a revisão própria dele; callbacks falhados de entrada, de saída ou de resultados, XML malformado, limites esgotados e cancelamento retêm o contexto anterior
Callbacks podem receber bytes candidatos antes de uma falha posterior; publique um destino próprio de quem chama apenas depois de HPDF_STATUS_OK devolver
Políticas, limites e resultados
A importação autentica a integridade existente de assinaturas e o binding ESS de signers; certificação P1 e P2 nega alterações de anotações, enquanto P3 permite uma revisão de anotações que retenha os bytes originais assinados
Importações AES-256 R5/R6 preservam parâmetros de encriptação e o prefixo original de revisões; uma importação vazia autentica a política e preserva os bytes atuais exatos
signaturePolicy aceita os requisitos existentes Booleanos de confiança/timestamps/revogação e os caminhos explícitos de confiança descritos na troca de dados de formulários de Windows
annotationLimits pode baixar maxBytes, maxAnnotations, maxNodes, maxDepth e maxWorkingBytes; os valores são números JSON inteiros positivos e não podem subir os defaults calculados
Orçamentos de trabalho, saída, resultados, objetos e páginas também se aplicam; operações por callbacks aceitam elapsedMilliseconds como um prazo adicional mais apertado
A exportação reporta annotationCount, skippedAnnotationCount, decodedAttachmentBytes e outputBytes; a importação reporta updated, outputBytes e annotationProfile igual a mapped-annotations-v1
Fronteiras
As capacidades anunciam troca de anotações através de file-job e execute-json-v1, com importação apenas de acrescentos, appearanceImport=false geral e stampAppearanceImport=true com âmbito
O transport standard de aparências de stamps 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, substituição/remoção de anotações, ações mais abrangentes e dados de anotações FDF continuam a ser trabalho separado; ações remotas GoToR e destinos locais usam os perfis delimitados existentes delas
O ExecuteLoadedOperation genérico e o registo mais antigo de callbacks de handles de trabalhos são pontos de entrada separados; quem chama a partir de Pascal pode usar a classe de transação explícita
Troca FDF binária
Os mesmos file jobs e callbacks V1 aceitam format="fdf"; as importações de ficheiros leem FDF binário de annotationInput, e as exportações escrevem FDF binário na saída selecionada
O perfil de grafos de objetos FDF preserva recursos de aparências fornecidos e objetos indiretos partilhados e suporta substituição por um NM de anotação não vazio correspondente na mesma página
A importação FDF devolve annotationProfile="pdf-object-graph-v1"; updated conta alterações reais de anotações, e uma importação equivalente preserva a revisão atual exata
FDF acrescenta maxObjects aos controlos annotationLimits inteiros positivos e usa a política autenticada existente, publicação delimitada de candidates e regras de posse de callbacks
Os callers Pascal podem usar THPDFWindowsFormDataTransaction.ExportAnnotationsFDF e ImportAnnotationsFDF; ChangedAnnotations reporta alterações reais para este perfil
Fields FDF não vazios e Differences incorporados exigem tratamento separado e fazem as operações apenas de anotações falharem antes da publicação
A remoção de anotações em Windows fornece uma transação preparada separada e um job JSON para identidades exatas de página e NM sem alterar a semântica de acréscimos do XFDF mapeado