CUPS 在打印过程中实际在什么时候调用光栅器?



我正在尝试利用 CUPS 栅格并获得一些较低级别的信息,例如像素数据、颜色模式、每像素位数、每颜色位数以及其他任何信息。我无法弄清楚 CUPS 如何使用光栅。每当我将某些内容打印为PDF时,它都不会通过filter/raster.c文件中的任何功能。

我的方法/推理不正确吗?我尝试打印图像(png(,文本和PDF,结果是一样的。

CUPS 没有任何称为"光栅器"的组件。

当 CUPS 需要处理提交的文件时(您可以在命令行上打印,例如'lp -d printername the.file',你知道吗?

  • 。它做的第一件事是自动键入传入文件以确定其MIME 类型;
  • 。接下来,它检查用户请求的目标打印队列(上面推荐中的"打印机名称"(;每个目标打印机都需要自己的文件格式,这也是它自己的一种MIME类型(当然,对于PCL,PostScript,ESC/P,GDI,专有的"任何"甚至使用PDF的打印机来说都是不同的(;
  • 。根据当前作业的输入和所需的最终输出文件类型,CUPS 构建适当的过滤链,并通过这些过滤器运行输入数据。

您可以通过在/etc/cups/cupsd.conf中启用LogLevel debug来遵循这些转换的过程(修改此设置后重新启动 CUPS 守护程序(。然后,检查日志文件:

less /var/log/cups/error_log

现在,这将显示包含'Started filter /usr/lib/cups/filter/...'的行,指示链中每个过滤器的启动时间。

raster/raster.c源代码文件包含过滤链包含任何ABCDtorasterrastertoXYZ过滤器时使用的代码。这些过滤器可能存在于也可能不存在于您的系统上的目录/usr/lib/cups/filter/,它们创建或后处理此处定义的特定于 CUPS 的栅格格式:https://www.cups.org/doc/spec-raster.html

最新更新