THotPDF.PrepareLoadedFormDataRevisionToStream
Prepara uma revisão privada do grafo realmente carregado sem alterar o documento original
Declaração
procedure PrepareLoadedFormDataRevisionToStream(Destination: TStream;
const Password: AnsiString; MaxWorkingBytes, MaxOutputBytes: Int64;
MaxObjects: Integer; Checkpoint: TNotifyEvent = nil;
OriginalSource: TStream = nil);
Comportamento
O método copia a revisão original para um arquivo privado criado exclusivamente, carrega um documento incremental separado, compara grafos de objetos semânticos por número e geração de objetos, clona as mudanças pendentes reais e grava o candidato resultante na posição atual do destino
Valores de texto, aparências existentes, mudanças pendentes não relacionadas de catalog, referências indiretas, conteúdos de streams e novos objetos de grafo participam da preparação; PDF names são decodificados uma vez, e nomes semânticos duplicados de dicionários são inválidos
Um grafo inalterado copia os bytes originais exatos sem adicionar uma seção incremental vazia de cross-reference; grafos alterados retêm o prefixo original completo de bytes e anexam sua revisão atual
Revisões criptografadas retêm seu dicionário de criptografia e chave originais; Password precisa autenticar a revisão original e é fornecida como bytes UTF-8
OriginalSource, quando fornecido, precisa ser a revisão original completa e imutável da qual este documento foi carregado, incluindo ciphertext e bytes assinados; sua posição é restaurada em sucesso e falha
Sem OriginalSource, o método usa CopyLoadedSourceToStream; isso não transforma uma origem emprestada e mutável externamente num snapshot imutável, então os chamadores devem preservar seus bytes carregados exatos
MaxWorkingBytes precisa ser de pelo menos 1 MiB; MaxOutputBytes e MaxObjects precisam ser positivos; cópia da origem, comparação de objetos, dados de clones residentes e spilled e comprimento da saída têm bounds finitos
OperationCancellationToken e Checkpoint são polled durante cópia e comparação; a cópia usa blocos de no máximo 64 KiB; uma preparação com falha pode deixar bytes parciais no destino, que o chamador deve descartar
Este método de baixo nível prepara uma revisão de grafo e não autoriza mudanças pendentes sob DocMDP ou FieldMDP; use THPDFWindowsFormDataTransaction para autenticar a política de assinaturas antes de publicar atualizações de formulários
O grafo do THotPDF original, a posse da origem, as mudanças pendentes e as configurações permanecem intactos quando a preparação tem sucesso ou falha; arquivos temporários são fechados e removidos quando o método sai
Tópicos relacionados
CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Troca FDF/XFDF no Windows