StartRenderPageJob

文件檢查、描繪

描述

啟動一個背景工作,渲染 PDF 檔案的某一頁,不封鎖呼叫者執行緒

因為 TPDFlib 不具執行緒安全,工作會從同一來源檔案建立隔離的執行個體,跑在系統工作(task)上,大頁面因此無法再佔住主機執行緒直到完成

工作把取消旗標與手動重設的暫停閘塞進渲染器,渲染器在內容串流運算之間輪詢它們;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

參數

FileNameThe source PDF file path
Password文件密碼;PDF 未加密時為空字串
OutputFileName目的地影像路徑;格式遵循 RenderPageToFile 的 Options
DPIThe render resolution
Page要描繪的頁碼(1 起算)
Options直接傳給 RenderPageToFile 的影像格式選項

傳回值

>0以 1 起算的工作控制代碼,搭配各項描繪工作控制方法使用
0無法啟動工作

備註

用 GetRenderJobState 輪詢進度、用 WaitForRenderJob 封鎖等待;兩者都回傳 RENDER_JOB_STATE_* 代碼請使用

用 PauseRenderJob、ResumeRenderJob 與 CancelRenderJob 中斷正在描繪的頁面,不損失工作執行緒

啟動工作的實例擁有該工作;釋放實例會等待未完成的工作結束,畫到一半的頁面不會活得比主人久