TPdfThumbnailCacheStatistics = record
EntryCount: Integer;
StoredBytes: Int64;
HitCount: Int64;
MissCount: Int64;
EvictionCount: Int64;
end;
EntryCount כולל רשומות ביטמפ חיוביות ואת היעדרן השמור של תמונות ממוזערות מוטמעות אופציונליות
StoredBytes מעריך את זיכרון הביטמפ כרוחב כפול גובה כפול ארבעה בייטים, ומוציא רשומות שליליות בנות אפס בייטים
מוני הפגיעות, ההחטאות והפינוי מצטברים לאורך חיי המופע של TPdf
property ThumbnailCacheMaxEntries: Integer; // default 64
property ThumbnailCacheMaxBytes: Int64; // default 64 MiB
המטמון שומר רשומה רק כל עוד שני תקרות הגבול מתירות זאת, ופונה את הרשומות הפחות בשימוש לאחרונה כאשר אחת מהן מצטמצמת
הגדרת אחת מהתקרות לאפס מבטלת שמירה תוך שמירה על זמינות החילוץ והרינדור
ערכים שליליים מעלים EPdfError
property ThumbnailCacheStatistics: TPdfThumbnailCacheStatistics;
קריאות חוזרות ל-ExtractThumbnail ול-RenderPageThumbnail מוסיפות פגיעות והחטאות תחת אותו מנעול רינדור בו משתמשת גישת העמודים המקורית של PDFium
כל חיפוש ביטמפ מוצלח מחזיר עותק עמוק בבעלות הקורא, ולכן שחרורו או שינויו אינם יכולים להשפיע על פגיעה עתידית
property ThumbnailRevision: Int64;
הערך מתקדם כאשר תוכן עמוד או מבנה המסמך עלולים להפוך תצוגה מקדימה קיימת ללא עדכנית
TPdfThumbnailView עוקב אחר הגרסה הזו ומשליך את העותקים הפעילים של העמודים הגלויים לפני שהוא מצייר מחדש תוכן שנערך
procedure ClearThumbnailCache;
משחרר רשומות ביטמפ ורשומות שליליות שנשמרו מבלי לשנות את המגבלות, את המונים המצטברים, את העמוד הפעיל או את גרסת תוכן המסמך
רשומות מרונדרות מובחנות לפי גרסת עמוד, מספר עמוד, גודל מרבי מבוקש, סיבוב, אפשרויות רינדור, רקע וכל שדה של TPdfColorScheme
תמונות ממוזערות מוטמעות משתמשות במפתח מקור נפרד ומטמינות גם ביטמפים מפוענחים וגם את היעדר רשומת /Thumb של עמוד
עריכת עמוד פוסלת את אותו עמוד, ואילו החלפת מסמך ושינויים בעץ העמודים מרוקנים את כל התמונות הממוזערות השמורות
var
Bitmap: TBitmap;
Stats: TPdfThumbnailCacheStatistics;
begin
Pdf.ThumbnailCacheMaxEntries := 128;
Pdf.ThumbnailCacheMaxBytes := Int64(96) * 1024 * 1024;
Bitmap := Pdf.RenderPageThumbnail(1, 180, 240);
try
Image1.Picture.Assign(Bitmap);
finally
Bitmap.Free;
end;
Stats := Pdf.ThumbnailCacheStatistics;
LogCache(Stats.EntryCount, Stats.HitCount, Stats.MissCount);
end;