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Номер растеризуемой страницы, начиная с 1
OptionsОпция формата изображения, передаваемая напрямую в RenderPageToFile

Возвращаемые значения

>0Дескриптор задания, начиная с 1, для методов управления заданиями растеризации
0Задание не удалось запустить

Примечания

Опрашивайте прогресс GetRenderJobState и ждите завершения через WaitForRenderJob; оба возвращают коды RENDER_JOB_STATE_*. Используйте

PauseRenderJob, ResumeRenderJob и CancelRenderJob прерывают текущую страницу, не теряя рабочий поток

Задание принадлежит запустившему его экземпляру; освобождение экземпляра дожидается незавершённых заданий, поэтому полуотрисованная страница не переживёт своего владельца