StartRenderPageJob

文档检查、渲染

描述

启动后台作业以渲染 PDF 文件中的页面,而不会阻塞调用方线程

由于 TPDFlib 不是线程安全的,该作业会从同一源文件创建隔离实例并在系统任务上运行,因此大型页面在完成前不再独占宿主线程

作业会将取消标志和手动重置暂停门传入渲染器,渲染器会在内容流运算符之间轮询它们;这使 PauseRenderJob、ResumeRenderJob 和 CancelRenderJob 能够中断单个正在处理的页面

语法

Delphi

Function TPDFlib.StartRenderPageJob(Const FileName, Password, OutputFileName: WideString; DPI: Double; Page, Options: Integer): Integer;

DLL

int DLStartRenderPageJob(int InstanceID, const wchar_t* FileName, const wchar_t* Password, const wchar_t* OutputFileName, double DPI, int Page, int Options);

ActiveX

Function PDFlib::StartRenderPageJob(FileName As String, Password As String, OutputFileName As String, DPI As Double, Page As Long, Options As Long) As Long

参数

FileName源 PDF 文件路径
Password文档密码;未加密 PDF 时为空字符串
OutputFileName目标图像路径;其格式遵循 Options,与 RenderPageToFile 中的格式相同
DPI渲染分辨率
Page要渲染的以一为基页面编号
Options直接传递给 RenderPageToFile 的图像格式选项

返回值

>0用于渲染作业控制方法的从 1 开始作业句柄
0无法启动作业

备注

使用 GetRenderJobState 轮询进度,并使用 WaitForRenderJob 阻塞;二者均返回 RENDER_JOB_STATE_* 代码

使用 PauseRenderJob、ResumeRenderJob 和 CancelRenderJob 中断正在运行的页面而不丢失工作线程

启动作业的实例拥有该作业;释放该实例会等待未完成作业结束,因此半完成的页面绝不会比其所有者存活更久