PDFium Delphi Component Docs

Кеш мініатюр

Component: TPdf  ·  Unit: PDFium
Перевикористовуйте вбудовані та відрендерені прев'ю сторінок через один обмежений LRU-кеш з урахуванням редакцій

Statistics type

TPdfThumbnailCacheStatistics = record
  EntryCount: Integer;
  StoredBytes: Int64;
  HitCount: Int64;
  MissCount: Int64;
  EvictionCount: Int64;
end;

EntryCount включає додатні бітові записи та кешовану відсутність необов'язкових вбудованих мініатюр

StoredBytes оцінює пам'ять бітових карт як ширина × висота × чотири байти та виключає нульбайтові негативні записи

Лічильники влучань, промахів і витіснень сукупні за життя екземпляра TPdf

Limits

property ThumbnailCacheMaxEntries: Integer; // default 64

property ThumbnailCacheMaxBytes: Int64; // default 64 MiB

Кеш утримує запис лише поки обидві стелі це дозволяють, і витісняє найменш нещодавно використані записи, коли будь-яка стеля зменшується

Установка будь-якої стелі в нуль вимикає утримання, залишаючи видобування та рендеринг доступними

Від'ємні значення породжують EPdfError

Statistics

property ThumbnailCacheStatistics: TPdfThumbnailCacheStatistics;

Повторні виклики ExtractThumbnail і RenderPageThumbnail дають влучання й промахи під тим самим блокуванням рендерингу, що використовується рідним доступом до сторінок PDFium

Кожен успішний пошук бітової карти повертає глибоку копію у власності викликача, тож звільнення чи зміна не можуть вплинути на пізніше влучання

Revision

property ThumbnailRevision: Int64;

Значення просувається, коли вміст сторінки чи структура документа можуть зробити наявне прев'ю застарілим

TPdfThumbnailView спостерігає за цією редакцією та відкидає свої гарячі копії видимих сторінок перед перемалюванням відредагованого вмісту

Clear

procedure ClearThumbnailCache;

Вивільняє утримувані бітові та негативні записи, не змінюючи лімітів, сукупних лічильників, активної сторінки чи редакції вмісту документа

Cache keys and invalidation

Відрендерені записи розрізняються за редакцією сторінки, номером сторінки, запитаним максимальним розміром, обертанням, опціями рендерингу, тлом і кожним полем TPdfColorScheme

Вбудовані мініатюри використовують окремий ключ джерела та кешують і декодовані бітові карти, і відсутність запису /Thumb сторінки

Редагування сторінки анулює цю сторінку, тоді як заміна документа та зміни дерева сторінок очищають усі утримувані мініатюри

Example

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;

See Also

RenderPageThumbnail, ExtractThumbnail, TPdfThumbnailView