THPDFWindowsFormDataTransaction

HPDFWindowsFormData fornisce un bridge Windows dal grafo THotPDF corrente al motore nativo autenticato FDF/XFDF

Dichiarazioni

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;

Ownership e policy

Document, OriginalSource e Checkpoint sono presi in prestito fino alla distruzione; OriginalSource deve corrispondere esattamente alla revisione originale caricata del documento; il costruttore copia e sigilla una sorgente originale privata, autentica le sue credenziali AES, e prepara il grafo in sospeso reale in un'altra sorgente privata

Il motore nativo controlla integrità delle firme esistenti e binding ESS dei certificati, permessi DocMDP, lock FieldMDP e flag read-only dei campi; gli aggiornamenti P2/P3 consentiti rigenerano aspetti autentici conservando i byte firmati originali

I controlli obbligatori di trust, timestamp e revoca firmata possono essere configurati con SetSignaturePolicyOptions; un controllo di integrità ordinario non implica trust in una root business non specificata

ImportData prepara un candidato PDF e un THotPDF caricato separatamente; non muta il documento preso in prestito; un import semanticamente invariato autentica comunque la policy firmata prima di copiare l'esatta revisione corrente

WritePreparedPDF copia byte candidati delimitati nello stream fornito; pubblica con successo ogni callback PDF e result richiesta prima di TakeCandidate; fallimento o cancellazione significa scartare la transazione

TakeCandidate trasferisce l'ownership sia del THotPDF che del suo THPDFWindowsFormDataSource; distruggi il documento prima di distruggere la sua sorgente; il candidato non conserva il cancellation token della transazione

THPDFWindowsFormDataSource possiede un file temporaneo creato in modo esclusivo; Seal lo scarica e lo riapre per accesso read-only; la distruzione chiude e rimuove il file; le callback della sorgente non sopravvivono alla sorgente proprietaria

ExportAnnotations e ImportAnnotations implementano lo scambio XFDF di annotazioni mappato; ChangedAnnotations riporta il conteggio delle aggiunte, usando lo stesso contatore di modifiche preparate di ChangedFields

Limiti

FillTypedData prepara campi scalari misti e run rich tipizzati originali nello stesso candidato senza un round trip di decodifica RV; gli accessor dei campi preparati leggono il candidato risultante reale

ImportDataWithFamilies seleziona da una a sedici famiglie nominate con programmi di stile reali e lo stesso lifecycle di candidato autenticato; il metodo ImportData originale conserva il suo comportamento a famiglia singola

THPDFWindowsFormDataLimits.Default imposta MaxWorkingBytes a 256 MiB, MaxOutputBytes a 128 MiB, MaxObjects a 100000 e MaxPages a 10000; la capacità di lavoro deve essere almeno 1 MiB e tutte le altre capacità devono essere positive

CancellationToken è preso in prestito e valido solo fino alla distruzione della transazione; interroga il token di operazione del documento originale e Checkpoint durante parsing nativo, decodifica XML rich, validazione della policy e copia

Questa classe Windows è disponibile per Delphi moderno, C++Builder e FPC Windows; Linux nativo usa THPDFHeadlessDocument direttamente

Argomenti correlati

Scambio FDF/XFDF Windows, Preparazione del grafo corrente, Form data nativi

Grafi di annotazioni FDF

ExportAnnotationsFDF restituisce il conteggio delle annotazioni e scrive FDF binario limitato in Bytes; ImportAnnotationsFDF prepara un candidato usando THPDFFDFOptions

Il profilo FDF conserva le risorse di appearance fornite e gli oggetti indiretti condivisi; i valori NM corrispondenti sulla stessa pagina selezionano le annotazioni esistenti da sostituire

I metodi FDF usano la stessa proprietà del documento prestato, la politica autenticata e il ciclo di vita del candidato preparato; ChangedAnnotations conta sostituzioni e accodamenti effettivi, e un import equivalente conserva la revisione corrente esatta

Rimozione delle annotazioni

RemoveAnnotations prepara rimozioni esatte pagina-e-NM, incluse popup e risposte dipendenti, attraverso lo stesso ciclo di vita del candidato; ChangedAnnotations riporta tutte le rimozioni una volta

Pubblicare i dati PDF e del risultato prima di TakeCandidate; il fallimento lascia il documento e la sorgente prestati invariati