cups开发 linux,linux-CUPS旁路接口

本文详细解释了CUPS中的原始打印队列概念,指出非原始队列与接口脚本和PPD文件的关联。介绍了如何在命令行中以原始格式发送打印作业,并提供了将现有队列转换为原始队列的方法。此外,还探讨了可能造成应用间打印行为差异的原因。
摘要由CSDN通过智能技术生成

您拥有的打印队列不是“原始”打印队列!

首先,您似乎不知道CUPS的说法是什么是原始打印队列:原始队列是不与…关联的队列.

> …都不是接口脚本(与/ etc / cups / interfaces /中的队列名称相同的脚本),

> …也没有PostScript打印机描述(PPD)文件(与队列本身同名的PPD文件,带有附加后缀* .ppd,位于/ etc / cups / ppd /中).

因为您说您已经为打印机队列安装了接口脚本,所以从定义上讲,这些不是原始队列!

要将作业作为原始作业(即:未过滤)发送到非原始CUPS队列,除了在lp命令行上使用-o raw之外,别无其他方法.您也可以使用-o document-format = application / vnd.cups-raw …选项,但这具有完全相同的含义:它使CUPS使用相同的作业处理,并且仅多出7倍的键盘按键即可冲床.

两种方式都使CUPS跳过自动键入传入作业文件的步骤,并将其未经过滤传递到队列的后端.

在cupsd.conf启用LogLevel调试后,通过查找关键字“自动键入”,可以在日志文件/ var / log / cups / error_log中观察到自动键入步骤及其结果,该行提到的请求文件类型为.. .会告诉您CUPS将哪种MIME类型将收到的工作分类为.)

如何强制CUPS以文本形式处理传入的打印数据

在lp命令行中使用-o document-format = text / plain.

如何设置CUPS“原始”队列

如果要将(任何)现有的打印队列转换为原始的打印队列,只需删除关联的PPD文件(/etc/cups/ppd/myprinter.ppd)或关联的接口脚本(/ etc / cups / interfaces / myprinter).

如果要从一开始就安装一个打印队列作为原始队列,只需使用打印机名称和后端URI,但不要指定任何PPD或与其关联的任何接口脚本:

安装“原始”打印队列的示例命令:

sudo lpadmin -p my_raw_printer -E -v socket://192.168.177.188:9100

(-p是指定打印队列名称,-E是从头开始启用打印队列.)

推测:为什么第二个应用程序可能绕过您的界面脚本

在没有看到完整的系统设置并没有看到第二个应用程序的情况下(第二个应用程序的打印行为与第一个应用程序不同),或者无法访问调试级别的CUPS error_log文件,只能推测:

>我的猜测是您的第二个应用程序使用一些硬连线的打印命令,该命令隐式使用-o raw打印命令选项.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值