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