CUPS打印压缩

我们的apllicatuion发送ascii文件到打印机。 此应用程序在开始时用Ctrl-O表示打印机应该打印132列。 我可以为80-col打印定义打印机pr01,为132 col打印定义pr01-132,并相应地设置默认选项。

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

我想要做的是当我发送一个作业时,假脱机程序应该采取pr01-132当文件中的第一个字符是一个Ctrl-O,否则pr01。

我怎样才能用CUPS做到这一点?

您的应用程序似乎对确定文档呈现的责任感到困惑。 它位于具有SI字符的文档之前,表明它试图控制渲染本身 – [SI]在IBM DMP上select精简模式打印(纵向布局中需要132列打印)。 假设您的打印机已configuration并支持IBM仿真,那么只需使用通用ASCII驱动程序在杯子中设置新设备即可。

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