RenderPagesToFilesParallel

Рендеринг и печать

Описание

Рендерит каждую страницу от StartPage до EndPage исходного PDF в один файл изображения на страницу, используя пул параллельных рабочих потоков TTask; каждый рабочий поток создает свой собственный экземпляр TPDFlib для одного и того же файла (TPDFlib не является потокобезопасным), вызывает CoInitialize для своего потока для обеспечения безопасности GDI+ и рендерит страницы, получаемые из общего атомарного счетчика, пока диапазон не будет исчерпан

Это масштабируется почти линейно с ядрами ЦП для процессорозависимого растрового вывода (BMP/PNG/TIFF); параметр MaxWorkers управляет шириной пула; передайте 0 или отрицательное значение для автоматического режима (минимум из количества страниц и количества процессоров); только для Windows: CoInitialize и GDI+ являются примитивами Windows

Синтаксис

Delphi

Function TPDFlib.RenderPagesToFilesParallel(Const FileName, Password: WideString; DPI: Double; StartPage, EndPage, Options: Integer; Const OutputPattern: WideString; MaxWorkers: Integer): Integer;

Параметры

FileName, PasswordПуть к исходному PDF и его пароль (пустой, если без шифрования)
DPIRender resolution
StartPage, EndPageДиапазон страниц, начиная с 1 включительно
OptionsФормат (аналогично RenderPageToFile: 0=BMP, 1=JPEG, 5=PNG ...)
OutputPatternПуть вывода; '%p' заменяется номером страницы, иначе номер добавляется в конец
MaxWorkersШирина пула (0 = авто, ограничена количеством страниц и числом процессоров)

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

>= 0Число успешно отрендеренных страниц (одностраничные сбои изолируются, не фатальны)