CUPS не имеет компонента, называемого растеризатором.
Когда CUPS необходимо обработать отправленный файл (вы можете печатать в командной строке, как 'lp -d printername the.file'
, знаете ли вы?), ...
- ... первым делом автоматически набирает входящий файл, чтобы определить его тип mime ;
- ... затем он проверяет, какая целевая очередь печати запрошена пользователем («имя_принца» выше рекомендуют); каждому целевому принтеру требуется свой собственный формат файла, который также является собственным типом MIME (который, конечно, отличается для PCL, PostScript, ESC / P, GDI, проприетарного «что угодно» или даже для потребления PDF-файлов). принтер);
- ... на основе входных и требуемых типов конечных выходных файлов текущего задания CUPS создает соответствующую цепочку фильтрации и пропускает входные данные через эти фильтры.
Вы можете следить за ходом этих преобразований, включив LogLevel debug
в /etc/cups/cupsd.conf
(перезапустите демон CUPS после изменения этого). Затем проверьте файл журнала:
less /var/log/cups/error_log
Теперь будут отображаться строки, содержащие 'Started filter /usr/lib/cups/filter/...'
, указывающие время запуска каждого фильтра в цепочке.
Файл исходного кода raster / raster.c содержит код, который используется, если цепочка фильтрации содержит какой-либо из фильтров ABCDtoraster или rastertoXYZ . Эти фильтры могут присутствовать или не присутствовать в вашей системе в каталоге /usr/lib/cups/filter/
, и они создают или обрабатывают формат растра для CUPS, определенный здесь: https://www.cups.org/doc/spec-raster.html