Graphics 是";光栅";是特定格式还是通用术语(关于CUPS打印库)
我已经看到了与CUPS库相关的以下两个文件:Graphics 是";光栅";是特定格式还是通用术语(关于CUPS打印库),graphics,cups,image,printing,Graphics,Cups,Image,Printing,我已经看到了与CUPS库相关的以下两个文件: 我不确定raster.c到底做了什么,但实际上它采用了PNG/JPEG/等格式,听起来像是“将其转换为光栅格式”。我不太明白这到底意味着什么。有些打印机是“PostScript打印机”,有些是“光栅打印机”,但我不确定这个术语“光栅”是否意味着有某种“打印机光栅格式”,比如PNG或JPG,或者它只是某种像素数组,或者其他什么。似乎打印机会有某种标准格式,但称之为“光栅”似乎有点误导,因为光栅基本上是某种东西的任意像素表示(据我理解) 希望您能
在CUPS和您提到的两个库源文件的上下文中,“光栅”是此处定义的一种特定光栅格式(它实际上在IANA中注册为mime类型
'application/vnd.CUPS raster'
):
## 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使用了一系列“过滤器”,从一种格式转换为另一种格式。它为每个打印作业自动构造这些链,具体取决于打印输入和所需(目标打印机)输出发出的当前需要:
您应该在Linux上的/usr/lib/cups/filter/目录(或macOS上的/usr/libexec/cups/filter/目录)中查看系统上所有已安装过滤器的列表。如果您可以同时访问Linux和macOS,您将看到许多不同之处:
- macOS:例如,在macOS上,您将看到苹果专有的
过滤器,它不是开源的,在Linux上不可用。(它与苹果的核心图形库接口,而苹果的核心图形库在Linux上没有使用。)这将转换为CUPS光栅格式 然后还有(至少)两个过滤器接管生成的CUPS光栅并进一步转换:cgpdftoraster
和rastertopwg
:rastertourf
- URF是一种(苹果公司专有)光栅格式,所有支持AirPrint且经过认证的打印机都必须支持这种格式
- PWG是由指定的光栅格式。它非常类似于URF,每个经过认证的打印机都需要支持它
- Linux:例如,在Linux上(安装了OpenPrinting的
软件包),您将看到cups过滤器
,它也转换为cups光栅格式 这两个过滤器将CUPS光栅转换为pdf和pwg光栅 同样:如果您安装了任何供应商专有的打印机驱动程序,或者如果您安装了其他打印机驱动程序包,如HPLIP、Gutenprint、printer-driver-foo2zjs、打印机驱动程序splix或打印机驱动程序brlaser(包名用于Debian),则系统上可能会有其他rastertoXYZ过滤器{pdf,image,gs}toraster
要查看哪个过滤器可以将哪个特定的输入文件格式mime类型转换为哪个特定的输出mime类型,您应该查看并读取系统的所有/usr/share/cups/mime/*.convs文件
按照CUPS的说法,“光栅打印机”是指任何不使用PDF或PostScript的打印机。(严格地说,市场上也有打印机可以使用Microsoft的XPS/OXPS打印格式,该格式也是基于矢量的。但CUPS不支持这些格式,无论是在macOS上还是在Linux上。供应商仅为Windows提供驱动程序。)光栅通常意味着图像存在于像素的光栅上,也就是说,它是位图,每个像素都可以通过
x,y
坐标进行寻址。这与Postscript和矢量图像形成对比,在Postscript和矢量图像中,直线或矩形将由其端点或顶点来描述。
## 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