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