THPDFViewerModel Snapshot Methods
无需构建 Viewer 控件即可生成页面图像,并复用已载入页面的渲染缓存
声明
function CreatePageSnapshot(PageIndex: Integer; DPI: Integer= 150): TBitmap;
function CreateCurrentPageSnapshot(DPI: Integer= 150): TBitmap;
function CreatePageThumbnail(PageIndex, MaxWidth, MaxHeight: Integer): TBitmap;
function CreateCurrentPageThumbnail(MaxWidth, MaxHeight: Integer): TBitmap;
function PrefetchPageSnapshots(PageIndex, Radius: Integer;
DPI: Integer= 150): Integer;
function PrefetchCurrentPageSnapshots(Radius: Integer= 1;
DPI: Integer= 150): Integer;
function SaveCurrentPageSnapshotToBMP(const FileName: string; DPI: Integer= 150): boolean;
function SaveCurrentPageSnapshotToStream(Stream: TStream;
ImageFormat: THPDFViewerSnapshotFormat; DPI: Integer= 150;
JPEGQuality: Integer= 90): boolean;
function SaveCurrentPageSnapshot(const FileName: string;
ImageFormat: THPDFViewerSnapshotFormat; DPI: Integer= 150;
JPEGQuality: Integer= 90): boolean;
使用说明
- 调用方拥有每个返回的
TBitmap并负责释放 - DPI 值会被限制在 12 到 2400 的支持范围内
- 文档或页面状态无效时,创建方法返回
nil CreatePageThumbnail与CreateCurrentPageThumbnail会挑选契合目标像素范围的渲染 DPI,保持页面纵横比并应用视图旋转,返回的位图绝不会超出给定的宽高上限PrefetchPageSnapshots与PrefetchCurrentPageSnapshots异步预热以目标页为中心的页面窗口,排入计划的页数以RenderCacheCapacity为上限- 预取方法返回已排入计划的页数,使用从零开始的页索引,并会取代先前的已载入页面预取请求
- 快照创建会在前台渲染之前抢占进行中的预取工作,文档级预取遥测能区分前台抢占与显式取消
SaveCurrentPageSnapshotToBMP写出 Windows BMP 输出,并返回文件是否已创建THPDFViewerSnapshotFormat用于选择vsfBMP、vsfJPEG或vsfPNG- 流输出从流的当前位置开始,且永不取得流的所有权
- JPEG 质量会被限制在 1 到 100 之间
- 保存失败时,文件输出会移除空文件或编码不完整的文件