PDFium Delphi Component Docs

GeneratePagedLayout metoda

Komponenta: TPdf  ·  Jednotky: PDFium, FPdfLayout

Syntaxe

function GeneratePagedLayout(Layout: TPdfLayoutDocument; PagedPlan: TPdfLayoutPagedPlan; out Plan: TPdfLayoutPlan; AllowSignedDocument: Boolean = False): Boolean;

Popis

Změří a rozstránkuje rozvržení a přitom serializuje každý příkaz do seekovatelného úložiště vlastněného nebo odkazovaného PagedPlan

Po měření materializuje vždy jedno pole příkazů stránky, vysílá tuto stránku stejnými nativními API stránkových objektů PDFium jako GenerateLayout, vyprázdní ji, uvolní lokální pole a pokračuje další stránkou

Úložiště a cache

Použijte dedikovaný TFileStream, TMemoryStream nebo TPdfRandomAccessStore; stream musí podporovat seek, čtení, zápis, změnu velikosti a výhradní použití po celou dobu života paged plánu

MaxCommandCount, MaxStorageBytes, MaxPageCommands a MaxSourceCount odmítnou přehnané plány, zatímco MaxCachedPages ohraničuje interní LRU cache a může být nula

CommandCount, StorageByteCount, čítače cache a špičková obsazenost vystavují měřitelné chování

Výsledek

Plan.Commands je záměrně prázdné; nastavení stránek, počet stránek, sémantické prvky, počty obsahů, měření a stabilní součty stránek s referencemi zůstávají dostupné

PagedPlan.MaterializePage může později obnovit kompletní stránku, včetně těla plus samostatně zapsaných segmentů záhlaví a zápatí

Omezení a bezpečnost

Tato metoda generuje netagované rozvržení; když je vyžadován kompletní in-memory plán příkazů a post-processing stromu struktury, použijte GenerateTaggedLayout

PDFium si uchovává autorský dokument a jeho nativní stránky až do uložení nebo zavření, takže toto API ohraničuje materializaci vysokoúrovňových příkazů, nikoli paměť dokumentu PDFium

Jakýkoli odkazovaný zdrojový PDF nebo TPdfLayoutCachedNode musí přežít generaci i pozdější materializaci a podepsané cíle vyžadují explicitní autorizaci

Selhání měření nebo vysílání resetuje nekompletní úložiště příkazů a vrátí zpět každou stránku přidanou voláním

Viz také

GenerateLayout, GenerateTaggedLayout, FPdfLayout, Pracovní úložiště s náhodným přístupem