THPDFWindowsFormDataTransaction
HPDFWindowsFormData fornece uma ponte Windows do grafo atual do THotPDF ao engine 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;
Posse e políticas
Document, OriginalSource e Checkpoint são emprestados até a destruição; OriginalSource precisa corresponder exatamente à revisão original carregada do documento; o construtor copia e sela uma origem privada original, autentica as credenciais AES dela, e prepara o grafo pendente real em outra origem privada
O engine nativo checa a integridade existente de assinaturas e o binding ESS de certificados, permissões DocMDP, locks FieldMDP e flags read-only de campos; atualizações permitidas P2/P3 regeneram aparências genuínas retendo os bytes originais assinados
Checagens obrigatórias de confiança, timestamp e revogação assinada podem ser configuradas com SetSignaturePolicyOptions; uma checagem comum de integridade não implica confiança numa raiz de negócio não especificada
ImportData prepara um PDF candidato e um THotPDF carregado separadamente; ele não muta o documento emprestado; um import semanticamente inalterado ainda autentica a política assinada antes de copiar a revisão atual exata
WritePreparedPDF copia bytes candidatos delimitados para o stream fornecido; publique com sucesso todos os callbacks obrigatórios de PDF e resultado antes de TakeCandidate; falha ou cancelamento significa descartar a transação
TakeCandidate transfere a posse tanto do THotPDF quanto do THPDFWindowsFormDataSource dele; destrua o documento antes de destruir a origem dele; o candidato não retém o token de cancelamento da transação
THPDFWindowsFormDataSource é dono de um arquivo temporário criado exclusivamente; Seal faz flush dele e o reabre para acesso somente leitura; a destruição fecha e remove o arquivo; callbacks da origem não sobrevivem à origem dona
ExportAnnotations e ImportAnnotations implementam a troca mapeada de anotações XFDF; ChangedAnnotations reporta a contagem de appends, usando o mesmo contador de mudanças preparadas de ChangedFields
Limites
FillTypedData prepara campos escalares mistos e rich runs tipados originais no mesmo candidato, sem round trip de decodificação RV; os accessors de campos preparados leem o candidato realmente resultante
ImportDataWithFamilies seleciona uma a dezesseis famílias nomeadas com programas reais de estilos e o mesmo ciclo de vida autenticado de candidatos; o método original ImportData mantém seu comportamento 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 precisa ser de pelo menos 1 MiB, e todas as outras capacidades precisam ser positivas
CancellationToken é emprestado e válido apenas até a destruição da transação; ele faz polling do token de operações do documento original e do Checkpoint durante parsing nativo, decodificação de XML rich, validação de políticas e cópia
Esta classe do Windows está disponível para Delphi moderno, C++Builder e FPC do Windows; o Linux nativo usa THPDFHeadlessDocument diretamente
Tópicos relacionados
Troca FDF/XFDF no Windows, Preparação do grafo atual, Form data nativo
Grafos de anotações FDF
ExportAnnotationsFDF retorna 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 compartilhados; 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 anexos reais, e um import 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 replies dependentes, pelo mesmo ciclo de vida de candidate; ChangedAnnotations reporta todas as remoções uma vez
Publique dados de PDF e resultado antes de TakeCandidate; falha deixa o documento e a origem emprestados inalterados