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