property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot; // read only
type TPdfPageObjectsSnapshot = record
PageNumber: Integer;
Width: Double;
Height: Double;
Status: TPdfPageObjectSnapshotStatus;
Objects: TPdfPageObjectSnapshots;
end;
| PageNumber | Integer. Index stránky číslovaný od jedničky v rámci načteného dokumentu |
| Status | TPdfPageObjectSnapshotStatus. Příznak dokončení, počty navštívených objektů a rozpočtové příznaky, které se dosáhlo |
| Objects | Records jednotlivých objektů s typem, hranicemi, transformací, barvami, poli čárkování, segmenty cest a ořezových cest, značkami obsahu, obrazovými metadaty a ohraničeným textem |
Při prvním přístupu ke stránce se snímek zachytí s rozpočty TPdfPageObjectSnapshotOptions.Default. Aktivní stránka se čte přes její načtené handle a každá jiná stránka se přechodně načte a zase zavře, aniž by se změnilo PageNumber nebo spustilo OnPageChange
Každý přístup vrací hlubokou kopii, takže změny ve vnořených polích čárkování, parametrech značek, segmentech cest, ořezových cestách, filtrech nebo řetězcích nemohou pozměnit data v cache ani dokument
Dokončené snímky se uchovávají v ohraničené cache popsané vlastností PageObjectSnapshotCacheCapacity a účtované proti CacheBudgetBytes a PageComplexity tuto cache znovu využívá pro typy objektů, počty cest, pixely obrázků a průhlednost
Volání bez aktivního dokumentu vyvolá EPdfError a PageNumber mimo rozsah 1 až PageCount vyvolá EPdfError se zprávou Incorrect page number
ReadPageObjectsSnapshot použijte pro vlastní rozpočty zachycení nebo když chcete cache záměrně obejít
Snapshot := Pdf.PageObjectsSnapshot[PageNumber];
for I := 0 to High(Snapshot.Objects) do
if Snapshot.Objects[I].ObjectType = otImage then
LogImageObject(I);