Класс THPDFLoadedPageRenderSession
Хранит состояние отрисовки страницы и живой частичный bitmap, чтобы загруженную страницу можно было отрисовать за несколько ограниченных вызовов
Объявление
THPDFLoadedPageRenderSession = class(TObject)
public
function ContinueRender(MaxMilliseconds: Cardinal = 0;
MaxObjects: Integer = 0): THPDFProgressiveRenderStatus;
function TakeBitmap: TBitmap;
property Bitmap: TBitmap read GetBitmap;
property ObjectsProcessed: Integer read GetObjectsProcessed;
property TotalObjects: Integer read GetTotalObjects;
property ProgressiveJPEGScansDecoded: Integer
read GetProgressiveJPEGScansDecoded;
property ProgressiveJPEGImagesDecoded: Integer
read GetProgressiveJPEGImagesDecoded;
property Status: THPDFProgressiveRenderStatus read GetStatus;
property IsRegionRender: Boolean read FIsRegionRender;
property RegionLeft: Single read FRegionLeft;
property RegionBottom: Single read FRegionBottom;
property RegionRight: Single read FRegionRight;
property RegionTop: Single read FRegionTop;
property RegionVisiblePaintObjects: Integer
read GetRegionVisiblePaintObjects;
property RegionCulledPaintObjects: Integer
read GetRegionCulledPaintObjects;
property OnProgress: THPDFProgressiveRenderProgressEvent
read FOnProgress write SetOnProgress;
property OnProgressiveJPEGScan: THPDFProgressiveJPEGScanEvent
read FOnProgressiveJPEGScan write SetOnProgressiveJPEGScan;
end;
Модуль
HPDFDoc
Значения статуса
prsReady— страница инициализирована и ни один content-оператор ещё не выполнялсяprsPaused— бюджет закончился до завершения всех операторовprsCompleted— полный bitmap страницы доступенprsCancelled— callback или token остановил сессию на границе оператора
Примечания по использованию
- Любой из бюджетов может быть нулевым — тогда работа по нему не ограничена; при обоих нулях один вызов доводит сессию до терминального состояния
Bitmapостаётся во владении сессии и предназначен для preview-доступа только на чтениеTakeBitmapвалиден только в терминальном состоянии и передаёт владение вызывающемуProgressiveJPEGScansDecodedиProgressiveJPEGImagesDecodedсчитают успешную инкрементальную работу с изображениями, аOnProgressiveJPEGScanпозволяет отменить работу после видимого scanIsRegionRenderидентифицирует ROI-сессии; region-свойства хранят запрошенные границы в user space, а счётчики visible и culled описывают выбор paint-объектов из display list- Загруженный экземпляр
THotPDFи token отмены должны оставаться живыми, пока сессия не освобождена