property TextPageSnapshot[PageNumber: Integer]: TPdfTextPageSnapshot; // read only
type TPdfTextPageSnapshot = record
PageNumber: Integer;
Width: Double;
Height: Double;
Status: TPdfTextSnapshotStatus;
Text: WString;
Characters: TPdfTextCharacterSnapshots;
TextObjects: TPdfTextObjectSnapshots;
end;
| PageNumber | Integer. Indeks halaman berbasis satu di dalam dokumen yang dimuat |
| Status | TPdfTextSnapshotStatus. Flag penyelesaian, hitungan visited, penghitung unmapped dan kegagalan, serta flag anggaran yang tercapai |
| Text | WString. Teks halaman hasil ekstraksi dalam urutan native PDFium |
| Characters | Record per karakter dengan code point, indeks, bounds, origin, sudut, ukuran font, warna, dan fakta matriks |
| TextObjects | Record per objek teks dengan rentang karakter, nama font, flag, weight, dan render mode |
Akses pertama untuk suatu halaman menangkap snapshot dengan anggaran TPdfTextSnapshotOptions.Default, yaitu satu juta karakter, seratus ribu objek teks, dan anggaran nama font 16 MiB. Halaman aktif dibaca melalui handle yang dimuatnya, dan halaman lain dimuat lalu ditutup sesaat tanpa mengubah PageNumber atau memicu OnPageChange
Setiap akses mengembalikan deep copy, sehingga mengubah string atau array milik pemanggil tidak dapat memodifikasi snapshot yang ter-cache maupun PDF
Snapshot yang selesai disimpan dalam cache berbatas yang dijelaskan TextSnapshotCacheCapacity dan diukur terhadap CacheBudgetBytes, dan GetStructuredText beserta GetTextInReadingOrder tata letak fisik memakai ulang snapshot yang sama
Pemanggilan tanpa dokumen aktif memunculkan EPdfError, dan PageNumber di luar satu sampai PageCount memunculkan EPdfError dengan pesan Incorrect page number
Gunakan ReadTextPageSnapshot untuk anggaran penangkapan kustom atau untuk sengaja melewati cache
Snapshot := Pdf.TextPageSnapshot[PageNumber];
if Snapshot.Status.Completed then
LogCharacterCount(Length(Snapshot.Characters));