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

问题描述 投票:1回答:1

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

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

cups
1个回答
0
投票

CUPS没有任何名为'rasterizer'的组件。

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

  • ...它首先做的是自动输入传入的文件以确定其mime类型;
  • ...接下来,它检查用户请求的目标打印队列(上面的“printername”表示);每个目标打印机都需要自己的文件格式,这也是它自己的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

© www.soinside.com 2019 - 2024. All rights reserved.