Является ли «растр» конкретным форматом или общим термином (в отношении библиотеки печати CUPS) - PullRequest
0 голосов
/ 22 января 2019

Я видел связанные с библиотекой CUPS эти два файла:

Я не уверен, что именно raster.c делает точно, но imagetoraster.cпо сути, принимает PNG / JPEG / и т. д.и "конвертирует его в растровый формат", это звучит так.Я не совсем понимаю, что это значит.Некоторые принтеры - это «принтеры PostScript», другие - «растровые принтеры», но я не уверен, что этот термин «растр» означает, что существует какой-то «формат растра принтера», такой как PNG или JPG, или это просто массивпиксели какой-то, или что-то еще.Кажется, что принтеры имели бы какой-то стандартный формат, но называть его «растром» кажется немного вводящим в заблуждение, поскольку растр - это, по сути, произвольное пиксельное представление чего-либо (из моего понимания).

Надеюсь, можно было бы уточнить, чтоточно подразумевается под растром в этой библиотеке фильтрации / печати CUPS.Я продолжаю думать, что это какой-то тип пантомимы IANA, но я не уверен.

1 Ответ

0 голосов
/ 14 февраля 2019

Предварительное примечание: То, что вы цитируете, не является родным CUPS API.Он является частью библиотеки проекта OpenPrinting .OpenPrinting предоставляет и поддерживает набор фильтров, которые могут быть интегрированы и закреплены в CUPS, в основном для пользователей Linux, поскольку Apple больше не поддерживает эту ОС напрямую, а вместо этого передает соответствующие части кода CUPS в Linux Foundation ...


В контексте CUPS и двух упомянутых вами исходных файлов библиотеки «растр» - это определенный растровый формат, определенный здесь (и он фактически зарегистрирован в IANA как mime-тип 'application/vnd.cups-raster'):

Итак, это ни TIFF, ни PNG, ни JPEG.CUPS-растр - это формат изображения, специфичный для CUPS, который разработан для использования с CUPS.

Этот формат играет промежуточную роль для некоторых типов заданий печати, когда требуется преобразование для формата документа для печати (например, PostScript)., PDF, TIFF, JPEG, PNG, Text, ...) в таком формате, который может использовать принтер. (Если вы покупаете принтер сегодня, вероятность того, что он сможет напрямую использовать PDF, составляет около 95%, поэтому никакого реального преобразования не требуется!)

Однако, если принтер не PDF-Если вы активируете (как и старые модели, как и многие устройства HP PCL-only), вам необходимо преобразовать формат печати в соответствии с предпочтениями принтера.Вы можете увидеть «промежуточную» роль растра CUPS в возможных цепочках преобразований формата файлов, которые CUPS может автоматически устанавливать для каждого задания на печать:

  ## FILE FORMAT CONVERSIONS
  PDF -> CUPS-raster -> PCL6     # PCL6-consuming printer
  PDF -> CUPS-raster -> PCL3     # PCL3-consuming printer
  PDF -> CUPS-raster -> ESC/P    # EPSON's ESC/P consuming printer

Для выполнения этих преобразований в CUPS используется цепочка «фильтры ", которые конвертируют из одного формата в другой.Он создает эти цепочки автоматически для каждого задания на печать, в зависимости от текущей потребности, о которой сообщается при печати и требуемого (целевым принтером) вывода:

  ## CUPS FILTERING CHAIN EXAMPLES
  (PDF input)        -> pdftoraster   -> rastertohp     # PCL6-consuming printer
  (PostScript input) -> gstoraster    -> rastertohp     # PCL3-consuming printer
  (TIFF input)       -> imagetoraster -> rastertoescpx  # EPSON's ESC/P consuming printer
  (PNG input)        -> imagetoraster -> rastertopwg    # any IPP-Everywhere printer
  (JPEG input)       -> imagetoraster -> rastertopdf    # any PDF-enabled printer
  (PDF input)        -> pdftoraster   -> rastertoqpdf   # some Samsung printers consuming SPLIX

Вам следует поискать в каталоге / usr/ lib / cups / filter / в Linux (или / usr / libexec / cups / filter / в macOS), чтобы увидеть список всех установленных фильтров в вашей системе.Если у вас есть доступ как к Linux, так и к macOS, вы увидите довольно много различий:

  • macOS: например, на macOS вы увидите *Фильтр 1040 *cgpdftoraster, который является собственностью Apple, не выпускается как Open Source и недоступен в Linux.(Он взаимодействует с библиотекой Apple Core Graphic , которая в любом случае не используется в Linux.) Конвертируется в растровый формат CUPS.

    Затем есть (как минимум) еще два фильтракоторые принимают созданный растр CUPS и преобразуют его далее: rastertopwg и rastertourf:

    • URF - это растровый формат (проприетарный для Apple), который должны использоваться всеми принтерами с поддержкой AirPrint и сертифицированнымиsupport.
    • PWG - это растровый формат, определенный рабочей группой по принтерам (PWG) .Он очень похож на URF, и каждый IPP Everywhere сертифицированный принтер должен поддерживать его.

    Там может бытьдополнительные rastertoXYZ фильтры в вашей системе, если вы установили драйвер принтера какого-либо поставщика.

  • Linux: , например, в Linux (с OpenPrintingcups-filters установлен пакет) вы увидите {pdf,image,gs}toraster, который также конвертируется в растровый формат CUPS.

    Два фильтра rasterto{pdf,pwg} конвертировать растр CUPS в PDF и в растр PWG.

    Опять же: в вашей системе могут быть дополнительные фильтры rastertoXYZ , если вы установили собственный драйвер принтера какого-либо поставщика или у вас естьустановлены дополнительные пакеты драйверов принтера, такие как HPLIP, Gutenprint, printer-driver-foo2zjs, printer-driver-splix или printer-driver-brlaser (имена пакетов для Debian).


Чтобы увидеть, какой конкретный формат входного файла MIME типВы можете конвертировать, по какому фильтру, в какой конкретный тип выходного mime вы должны просмотреть и прочитать все файлы / usr / share / cups / mime / *. convs вашей системы.


«Растровый принтер» на языке CUPS - это любой принтер, который не использует PDF или PostScript. (Строго говоря, на рынке есть также принтеры, которые могут использовать формат печати Microsoft XPS / OXPS, который также основан на векторах. Но они не поддерживаются CUPS, ни в macOS, ни в Linux. Поставщики предоставляют драйверы только для Windows.)

...