THPDFWindowsFormDataTransaction

HPDFWindowsFormData fornece uma ponte de Windows do grafo atual de THotPDF para o motor nativo autenticado de FDF/XFDF

Declarações

constructor Create(Document: THotPDF; OriginalSource: TStream;
  const Password: AnsiString; const Limits: THPDFWindowsFormDataLimits;
  Checkpoint: TNotifyEvent = nil);
procedure SetSignaturePolicyOptions(const Options: THPDFHeadlessCMSOptions);
function ExportData(Format: THPDFHeadlessFormDataFormat;
  const Options: THPDFHeadlessFormDataOptions): TBytes;
procedure ImportData(const Bytes: TBytes; Format: THPDFHeadlessFormDataFormat;
  const Fonts: THPDFHeadlessRichTextFonts;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure ImportDataWithFamilies(const Bytes: TBytes;
  Format: THPDFHeadlessFormDataFormat; const Families: THPDFHeadlessRichTextFontFamilies;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure FillTypedData(const Updates: THPDFHeadlessRichTextFieldUpdates;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
function ExportAnnotations(const Options: THPDFHeadlessXFDFOptions;
  out Bytes: SysUtils.TBytes): THPDFHeadlessXFDFExportResult;
procedure ImportAnnotations(const Bytes: SysUtils.TBytes;
  const Options: THPDFHeadlessXFDFOptions; const Password: AnsiString);
property ChangedAnnotations: Integer;
function PreparedFieldCount: Integer;
procedure GetPreparedField(Index: Integer; out Name, Value: UnicodeString;
  out FieldType: Integer);
procedure WritePreparedPDF(Destination: TStream);
procedure TakeCandidate(out Document: THotPDF;
  out Source: THPDFWindowsFormDataSource);
property ChangedFields: Integer;
property CancellationToken: THPDFCancellationToken;

Propriedade e políticas

Document, OriginalSource e Checkpoint são emprestados até a destruição; OriginalSource tem de corresponder exatamente à revisão original carregada do documento; o construtor copia e sela uma fonte original privada, autentica as credenciais AES dela e prepara o grafo pendente real noutra fonte privada

O motor nativo verifica a integridade existente de assinaturas e o binding ESS de certificados, permissões DocMDP, bloqueios FieldMDP e flags só de leitura de campos; atualizações permitidas P2/P3 regeneram aparências genuínas mantendo os bytes originais assinados

Verificações exigidas de confiança, de timestamps e de revogação assinada podem ser configuradas com SetSignaturePolicyOptions; uma verificação ordinária de integridade não implica confiança numa raiz de negócios não especificada

ImportData prepara um PDF candidato e um THotPDF carregado separadamente; não muta o documento emprestado; uma importação semanticamente inalterada ainda autentica a política assinada antes de copiar a revisão atual exata

WritePreparedPDF copia bytes delimitados do candidato para a stream fornecida; publique com sucesso todos os callbacks exigidos de PDF e de resultados antes de TakeCandidate; falha ou cancelamento significa descartar a transação

TakeCandidate transfere a propriedade tanto do THotPDF como do THPDFWindowsFormDataSource dele; destrua o documento antes de destruir a fonte dele; o candidato não retém o token de cancelamento da transação

THPDFWindowsFormDataSource é dono de um ficheiro temporário criado exclusivamente; Seal faz flush dele e reabre-o para acesso só de leitura; a destruição fecha e remove o ficheiro; callbacks de fontes não sobrevivem à fonte proprietária deles

ExportAnnotations e ImportAnnotations implementam a troca mapeada de anotações XFDF; ChangedAnnotations reporta a contagem de acrescentos, usando o mesmo contador de alterações preparadas que ChangedFields

Limites

FillTypedData prepara campos escalares mistos e runs rich tipados originais no mesmo candidato sem uma viagem de ida e volta de descodificação de RV; os acessores de campos preparados leem o candidato resultante real

ImportDataWithFamilies seleciona entre uma e dezasseis famílias nomeadas com programas reais de estilos e o mesmo ciclo de vida autenticado de candidatos; o método original ImportData mantém o comportamento dele de família única

THPDFWindowsFormDataLimits.Default define MaxWorkingBytes como 256 MiB, MaxOutputBytes como 128 MiB, MaxObjects como 100000 e MaxPages como 10000; a capacidade de trabalho tem de ser pelo menos 1 MiB e todas as restantes capacidades têm de ser positivas

CancellationToken é emprestado e válido apenas até a destruição da transação; ele consulta o token de operações do documento original e o Checkpoint durante parsing nativo, descodificação de XML rich, validação de políticas e cópia

Esta classe de Windows está disponível para Delphi moderno, C++Builder e Windows FPC; Linux nativo usa THPDFHeadlessDocument diretamente

Tópicos relacionados

Troca FDF/XFDF de Windows, Preparação do grafo atual, Dados nativos de formulários

Grafos de anotações FDF

ExportAnnotationsFDF devolve a contagem de anotações e escreve FDF binário delimitado em Bytes; ImportAnnotationsFDF prepara um candidate usando THPDFFDFOptions

O perfil FDF retém recursos de aparências fornecidos e objetos indiretos partilhados; valores NM correspondentes na mesma página selecionam anotações existentes para substituição

Os métodos FDF usam a mesma posse emprestada de documento, política autenticada e ciclo de vida de candidate preparado; ChangedAnnotations conta substituições e acréscimos reais, e uma importação equivalente retém a revisão atual exata

Remoção de anotações

RemoveAnnotations prepara remoções exatas de página e NM, incluindo popups e respostas dependentes, pelo mesmo ciclo de vida de candidate; ChangedAnnotations reporta todas as remoções uma vez

Publique os dados de PDF e de resultado antes de TakeCandidate; a falha deixa o documento e a fonte emprestados inalterados