CUPS 打印压缩

CUPS 打印压缩

我们的应用程序将 ASCII 文件发送到打印机。此应用程序在启动时使用 Ctrl-O 指示打印机应打印 132 列。我可以定义打印机 pr01 用于 80 列打印,pr01-132 用于 132 列打印,并相应地设置默认选项。

lpoptions -p pr01-132 -o cpi=16.6 -o lpi=10

我想要做的是,当我发送一个作业时,如果文件中的第一个字符是 Ctrl-O,则后台处理程序应该采用 pr01-132,否则采用 pr01。

我如何使用 CUPS 来实现这一点?

答案1

您的应用程序似乎搞不清楚谁应该负责确定文档的渲染。它在文档前面加上 SI 字符,这表明它试图控制渲染本身 - [SI] 选择在 IBM DMP 上进行压缩模式打印(纵向布局中 132 列打印所需)。假设您的打印机已配置并支持 IBM 仿真,那么只需使用通用 ASCII 驱动程序在 cups 中设置新设备即可。

如果您的打印机不支持 IBM 仿真,并且通用驱动程序无法按预期工作,那么您可能需要从文件中删除 [SI]。请参阅这个文件有关如何编写您自己的过滤器的详细信息。它描述了 DVI 文件的处理过程 - 但原理是相同的:首先为您的文件发明一个 mimetype,例如 application/vnd.local.proprinter,然后设置将“魔法字节”映射到 mimetype 的配方(请参阅 /etc/cups/mime.types),然后编写一个脚本来删除前导 [SI] 并转换为 ps(man a2ps)。

相关内容