APFill Coverage Calculator: автоматический режим с параллельной обработкой файлов PDF « AVPSoft.ru
Skip to content
 

APFill Coverage Calculator: автоматический режим с параллельной обработкой файлов PDF

Программа APFill Ink Coverage Calculator предназначена для измерения заполнения тонером/чернилами PDF или PS файлов. APFill измеряет отдельно CMYK, а также дополнительно до 8 цветов в файле.

Кроме обычного режима работы, при котором пользователь самостоятельно выбирает файл и измеряет его заполнение с помощью программы, APFill имеет автоматический режим работы и может запускаться из командной строки с параметрами.

В этом случае, после обработки файла PDF/PS с заданными параметрами, APFill выдает результаты в виде текстового файла со значениями разделенными точкой с запятой CSV. Такой файл можно открыть в MS Excel для дальнейшей работы с результатами.

Подробно данный режим описан в статье: Использование APFill для автоматического измерения заполнения PDF/PS файлов .

В данной статье приведен пример использования программы APFill для автоматического измерения заполнения всех файлов PDF в заданной директории. Для обработки всех файлов в директории «C:\PDFFolder\» используется следующий командный файл Windows (CMD):

FOR %%I IN ("C:\PDFFolder\*.pdf") DO "%ProgramFiles%\apfill\apfill.exe" –r600 -noprogress "%%I"

Здесь представлен скрипт который для каждого файла PDF в директории «C:\PDFFolder\» вызывает программу APFill с заданными параметрами измерения заполнения и именем файла в качестве входного параметра. При этом программа обработает данный файл и сформирует файл «<Имя входного файла PDF>.COVERAGE.txt» с результатами.

Вот пример полученного результата для одного файла:

Файл можно открыть в MS Excel для дальнейшей обработки полученных результатов измерения заполнения тонером/чернилами:

В некоторых случаях автоматический режим и приведенный выше скрипт используется для обработки большого количества файлов, например до 2000 PDF файлов за раз и это занимает много времени.

Скрипт для запуска APFill можно оптимизировать для уменьшения времени обработки такого большого количества файлов в директорий. Первое что можно сделать, это уменьшить параметр <-r600>. Данный параметр определяет разрешение (в данном случае 600 DPI) с которым файл PDF будет переводится в растровый формат для дальнейшего расчета заполнения. Как правило, при разрешении уже 300 dpi результаты расчета заполнения будут иметь достаточную точность и в то же время обработка результатов потребует значительно меньшее время. Подробнее про этот параметр можно прочитать в статье: «APFill: параметры «разрешение» (resolution) и «размер страницы по умолчанию»».

Следующий шаг для ускорения обработки большого количества файлов PDF в директории это параллельный запуск программы APFill. Последние версии программы APFil 5.9 (5.8) поддерживают запуск нескольких процессов apfill.exe параллельно для расчета разных файлов PDF. Воспользуемся этим и изменим исходный скрипт для параллельного запуска программы в автоматическом режиме.

Для этого создадим два командных файла Windows CMD.

Первый файл apfillRun.cmd:


"%ProgramFiles%\apfill\apfill.exe" -r300 -noprogress %1
EXIT

Этот скрипт принимает имя PDF файла в качестве параметра [%1] и запускает программу APFill в автоматическом режиме с заданными параметрами расчета (параметры здесь могут быть произвольными).

Второй основной файл apfillMain.cmd обрабатывает все файлы в директории запуская для каждого скрипт apfillRun.cmd:


SET MAX_PROCESS_COUNT=4
FOR %%I IN ("C:\PDFFolder\*.pdf") DO (
CALL :check
START apfillRun.cmd "%%I"
)
EXIT /b
:check
FOR /F "tokens=* USEBACKQ" %%F IN (`tasklist ^| find /i "apfill.exe" ^| find /C /V ""`) DO (SET count=%%F)
IF %count% LSS %MAX_PROCESS_COUNT% EXIT /b
TIMEOUT /T 1 /NOBREAK
GOTO check
EXIT /b

Здесь в цикле для каждого файла PDF из директории «C:\PDFFolder\» запускается командный файл apfillRun.cmd без ожидания в параллельном режиме. Но перед каждым запуском скрипт проверяет сколько процессов apfill.exe уже было запущено и если их количество меньше «MAX_PROCESS_COUNT» (в данном примере 4) то запускает очередной экземпляр программы для расчета следующего по очереди файла. Если же количество запущенных уже процессов больше значения заданного параметром «MAX_PROCESS_COUNT», то скрипт ждет пока один из запущенных процессов завершится и только тогда запускает новый процесс для расчета очередного файла.

Таким образом, данный скрипт позволяет ускорить обработку большого количества файлов PDF, запуская расчет файлов в параллельном режиме и регулируя нагрузку на систему ограничивая количество одновременно запущенных процессов.

Ссылки по теме:

Скачать последнюю версию программы APFill Ink Coverage Calculator

Использование APFill для автоматического измерения заполнения PDF/PS файлов

APFill: параметры «разрешение» (resolution) и «размер страницы по умолчанию»