property PageObjectsSnapshot[PageNumber: Integer]: TPdfPageObjectsSnapshot; // read only
type TPdfPageObjectsSnapshot = record
PageNumber: Integer;
Width: Double;
Height: Double;
Status: TPdfPageObjectSnapshotStatus;
Objects: TPdfPageObjectSnapshots;
end;
| PageNumber | Integer. Indeks halaman berbasis satu di dalam dokumen yang dimuat |
| Status | TPdfPageObjectSnapshotStatus. Flag penyelesaian, hitungan objek yang dikunjungi, dan flag anggaran yang tercapai |
| Objects | Record per objek dengan tipe, bounds, transform, warna, dash array, segmen path dan clip, content mark, metadata gambar, dan teks beranggaran |
Akses pertama untuk sebuah halaman menangkap snapshot dengan anggaran TPdfPageObjectSnapshotOptions.Default. Halaman aktif dibaca melalui handle yang termuat, dan halaman lain mana pun dimuat serta ditutup secara transien tanpa mengubah PageNumber atau memicu OnPageChange
Setiap akses mengembalikan deep copy, sehingga mengubah dash array bersarang, parameter mark, segmen path, clip path, filter, atau string tidak dapat memodifikasi data yang di-cache maupun dokumen
Snapshot yang selesai disimpan dalam cache beranggaran yang dijelaskan oleh PageObjectSnapshotCacheCapacity dan diukur terhadap CacheBudgetBytes, dan PageComplexity memakai ulang cache ini untuk tipe objek, hitungan path, piksel gambar, dan transparansi
Pemanggilan tanpa dokumen aktif memunculkan EPdfError, dan PageNumber di luar satu hingga PageCount memunculkan EPdfError dengan pesan Incorrect page number
Gunakan ReadPageObjectsSnapshot untuk anggaran tangkapan kustom atau untuk sengaja melewati cache
Snapshot := Pdf.PageObjectsSnapshot[PageNumber];
for I := 0 to High(Snapshot.Objects) do
if Snapshot.Objects[I].ObjectType = otImage then
LogImageObject(I);