THotPDF.PrepareLoadedFormDataRevisionToStream
Připraví soukromou revizi skutečného načteného grafu, aniž by změnila původní dokument
Deklarace
procedure PrepareLoadedFormDataRevisionToStream(Destination: TStream;
const Password: AnsiString; MaxWorkingBytes, MaxOutputBytes: Int64;
MaxObjects: Integer; Checkpoint: TNotifyEvent = nil;
OriginalSource: TStream = nil);
Chování
Metoda zkopíruje původní revizi do výhradně vytvořeného soukromého souboru, načte samostatný inkrementální dokument, porovná sémantické objektové grafy podle objektového čísla a generace, naklonuje skutečné čekající změny a zapíše výsledného kandidáta na aktuální pozici cíle
Textové hodnoty, stávající appearance, nesouvisející čekající změny katalogu, nepřímé reference, obsah streamů i nové grafové objekty se účastní přípravy; PDF názvy se dekódují jednou a duplicitní sémantické názvy slovníků jsou neplatné
Nezměněný graf zkopíruje přesné původní bajty, aniž by přidal prázdnou inkrementální cross-reference sekci; změněné grafy si ponechají kompletní původní bajtovou předponu a připojí svou aktuální revizi
Šifrované revize si ponechávají svůj původní šifrovací slovník i klíč; Password musí autentizovat původní revizi a dodává se jako UTF-8 bajty
OriginalSource, když je dodán, musí být kompletní neměnná původní revize, ze níž se tento dokument načetl, tedy i ciphertext i podepsané bajty; jeho pozice se obnoví při úspěchu i selhání
Bez OriginalSource metoda použije CopyLoadedSourceToStream; to neudělá z externě měnitelného vypůjčeného zdroje neměnný snapshot, takže volající musí zachovat jeho přesné načtené bajty
MaxWorkingBytes musí být alespoň 1 MiB; MaxOutputBytes a MaxObjects musí být kladné; kopírování zdroje, porovnávání objektů, rezidentní i spillnutá klonovaná data a délka výstupu mají konečné meze
OperationCancellationToken a Checkpoint se dotazují během kopírování i porovnávání; kopírování používá bloky nejvýše 64 KiB; neúspěšná příprava může zanechat částečné bajty cíle, které volající musí zahodit
Tato nízkoúrovňová metoda připraví grafovou revizi a neautorizuje čekající změny pod DocMDP či FieldMDP; politiku podpisů autentizujte před publikací formulářových aktualizací přes THPDFWindowsFormDataTransaction
Původní THotPDF graf, vlastnictví zdroje, čekající změny i nastavení zůstávají nedotčené, ať už příprava uspěje, nebo selže; dočasné soubory se při exitu metody zavřou a odstraní
Související témata
CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Windows FDF/XFDF exchange