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 и его пароль (пустой, если без шифрования) |
|---|---|
| DPI | Render resolution |
| StartPage, EndPage | Диапазон страниц, начиная с 1 включительно |
| Options | Формат (аналогично RenderPageToFile: 0=BMP, 1=JPEG, 5=PNG ...) |
| OutputPattern | Путь вывода; '%p' заменяется номером страницы, иначе номер добавляется в конец |
| MaxWorkers | Ширина пула (0 = авто, ограничена количеством страниц и числом процессоров) |
Возвращаемые значения
| >= 0 | Число успешно отрендеренных страниц (одностраничные сбои изолируются, не фатальны) |
|---|