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. אינדקס עמוד החל מ-1 בתוך המסמך הטעון |
| Status | TPdfTextSnapshotStatus. דגל השלמה, ספירות ביקור, מוני אי-מיפוי וכשל, ודגלי התקציב שהופעלו |
| Text | WString. טקסט העמוד שחולץ בסדר המקורי של PDFium |
| Characters | רשומות לכל תו עם נקודת קוד, אינדקסים, תחומים, נקודת מוצא, זווית, גודל גופן, צבעים ונתוני מטריצה |
| TextObjects | רשומות לכל אובייקט טקסט עם טווחי תווים, שם גופן, דגלים, משקל ומצב רינדור |
הגישה הראשונה לעמוד לוכדת את תמונת המצב עם תקציבי TPdfTextSnapshotOptions.Default: מיליון תווים, מאה אלף אובייקטי טקסט ותקציב שם גופן של 16 MiB. העמוד הפעיל נקרא דרך ה-handles הטעונים שלו, וכל עמוד אחר נטען ונסגר באופן חולף מבלי לשנות את PageNumber או להפעיל את OnPageChange
כל גישה מחזירה עותק עמוק, ולכן שינוי של מחרוזת או מערך בבעלות הקורא אינו יכול לשנות את תמונת המצב במטמון או את ה-PDF
תמונות מצב שהושלמו נשמרות במטמון החסום ש-TextSnapshotCacheCapacity מתאר ונמדדות מול CacheBudgetBytes, ו-GetStructuredText וגם GetTextInReadingOrder בפריסה פיזית עושים שימוש חוזר באותה תמונת מצב
קריאה ללא מסמך פעיל מעלה EPdfError, ו-PageNumber מחוץ לטווח שבין 1 ל-PageCount מעלה EPdfError עם ההודעה Incorrect page number
השתמש ב-ReadTextPageSnapshot עבור תקציבי לכידה מותאמים אישית או כדי לעקוף את המטמון במכוון
Snapshot := Pdf.TextPageSnapshot[PageNumber];
if Snapshot.Status.Completed then
LogCharacterCount(Length(Snapshot.Characters));