THPDFWindowsFormDataTransaction
HPDFWindowsFormData poskytuje Windows most z aktuálního grafu THotPDF do nativního autentizovaného engine FDF/XFDF
Deklarace
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;
Vlastnictví a politika
Document, OriginalSource i Checkpoint jsou vypůjčené až do zničení; OriginalSource se musí přesně shodovat s načtenou původní revizí dokumentu; konstruktor zkopíruje a zapečetí soukromý původní zdroj, autentizuje jeho AES přihlašovací údaje a připraví skutečný čekající graf v jiném soukromém zdroji
Nativní engine zkontroluje stávající integritu podpisů i vazbu ESS certifikátu, oprávnění DocMDP, zámky FieldMDP i příznaky read-only polí; povolené aktualizace P2/P3 zregenerují skutečná appearance, při zachování původních podepsaných bajtů
Vyžadované kontroly důvěry, timestampů i podepsaných revokací lze nakonfigurovat přes SetSignaturePolicyOptions; běžná kontrola integrity nezakládá důvěru k nespecifikovanému podnikovému rootu
ImportData připraví jednoho kandidátního PDF a jeden samostatně načtený THotPDF; vypůjčený dokument nemutuje; sémanticky nezměněný import si pořád autentizuje podepsanou politiku, dřív než zkopíruje přesnou aktuální revizi
WritePreparedPDF zkopíruje ohraničené kandidátní bajty do dodaného streamu; publikujte úspěšně každý povinný callback PDF i výsledku, dřív než TakeCandidate; selhání či zrušení znamená transakci zahodit
TakeCandidate přenese vlastnictví jak THotPDF, tak jeho THPDFWindowsFormDataSource; dokument zničte, dřív než jeho zdroj; kandidát si nedrží cancellation token transakce
THPDFWindowsFormDataSource vlastní výhradně vytvořený dočasný soubor; Seal ho flushne a znovu otevře pro read-only přístup; zničení soubor zavře a odstraní; zdrojové callbacky nežijí déle než vlastnící zdroj
ExportAnnotations a ImportAnnotations implementují mapovanou anotační XFDF výměnu; ChangedAnnotations reportuje počet připojení, se stejným počítadlem připravených změn jako ChangedFields
Limity
FillTypedData připraví smíšená skalární pole i původní typované rich runy ve stejném kandidátovi, bez round tripu dekódování RV; accessory připravených polí čtou skutečného výsledného kandidáta
ImportDataWithFamilies vybere jednu až šestnáct pojmenovaných rodin se skutečnými style programy a stejným autentizovaným kandidátním životním cyklem; původní metoda ImportData si uchovává chování jedné rodiny
THPDFWindowsFormDataLimits.Default nastaví MaxWorkingBytes na 256 MiB, MaxOutputBytes na 128 MiB, MaxObjects na 100000 a MaxPages na 10000; pracovní kapacita musí být alespoň 1 MiB a všechny ostatní kapacity kladné
CancellationToken je vypůjčený a platný jen do zničení transakce; dotazuje token operací původního dokumentu i Checkpoint během nativního parsování, dekódování rich XML, validace politiky i kopírování
Ta Windows třída je dostupná modernímu Delphi, C++Builder i Windows FPC; nativní Linux používá THPDFHeadlessDocument přímo
Související témata
Windows FDF/XFDF exchange, Příprava aktuálního grafu, Nativní form data
Grafy FDF anotací
ExportAnnotationsFDF vrátí počet anotací a zapíše ohraničené binární FDF do Bytes; ImportAnnotationsFDF připraví kandidáta pomocí THPDFFDFOptions
FDF profil zachovává dodané appearance resource a sdílené nepřímé objekty; shodné NM hodnoty na stejné stránce vybírají existující anotace k nahrazení
FDF metody používají tentýž ownership vypůjčeného dokumentu, authenticated politiku a lifecycle připraveného kandidáta; ChangedAnnotations počítá skutečné náhrady i připojení a ekvivalentní import zachovává přesně aktuální revizi
Odstranění anotací
RemoveAnnotations připraví přesná odebrání podle stránky a NM, včetně závislých popup a reply, přes tentýž lifecycle kandidáta; ChangedAnnotations hlásí všechna odebrání jednou
Publikujte PDF a data výsledku před TakeCandidate; selhání ponechá vypůjčený dokument i zdroj beze změny