THotPDF.PrepareLoadedFormDataRevisionToStream

Prepara uma revisão privada do grafo realmente carregado sem alterar o documento original

Declaration

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 ficheiro privado criado exclusivamente, carrega um documento incremental separado, compara grafos semânticos de objetos por número e geração, clona alterações pendentes reais e escreve o candidato resultante na posição atual do destino

Valores de texto, aparências existentes, alterações pendentes alheias de catalogs, referências indiretas, conteúdos de streams e objetos novos de grafos participam na preparação; PDF names são descodificados uma vez, e nomes semânticos duplicados de dicionários são inválidos

Um grafo inalterado copia os bytes originais exatos sem acrescentar uma secção incremental vazia de referências cruzadas; grafos alterados retêm o prefixo original completo de bytes e acrescentam a revisão atual deles

Revisões encriptadas mantêm o dicionário e a chave originais de encriptação delas; Password tem de autenticar a revisão original e é fornecida como bytes UTF-8

OriginalSource, quando fornecido, tem de ser a revisão original completa e imutável a partir da qual este documento foi carregado, incluindo ciphertext e bytes assinados; a posição dele é restaurada em sucesso e falha

Sem OriginalSource, o método usa CopyLoadedSourceToStream; isso não transforma uma fonte emprestada mutável externamente num snapshot imutável, pelo que quem chama tem de preservar os bytes exatos carregados dela

MaxWorkingBytes tem de ser pelo menos 1 MiB; MaxOutputBytes e MaxObjects têm de ser positivos; cópias de fontes, comparação de objetos, dados de clones residentes e descarregados e comprimento de saída têm limites finitos

OperationCancellationToken e Checkpoint são consultados durante cópias e comparações; a cópia usa blocos de no máximo 64 KiB; uma preparação falhada pode deixar bytes parciais no destino, que quem chama tem de descartar

Este método de baixo nível prepara uma revisão de grafos e não autoriza alterações pendentes sob DocMDP nem FieldMDP; use THPDFWindowsFormDataTransaction para autenticar a política de assinaturas antes de publicar atualizações de formulários

O grafo original de THotPDF, a propriedade da fonte, as alterações pendentes e as definições permanecem intactos quando a preparação tem sucesso ou falha; os ficheiros temporários são fechados e removidos quando o método sai

Tópicos relacionados

CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Troca FDF/XFDF de Windows