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 中断正在运行的页面而不丢失工作线程
启动作业的实例拥有该作业;释放该实例会等待未完成作业结束,因此半完成的页面绝不会比其所有者存活更久