如何从命令行以及通过 CUPS 打印?

6 command-line printing

我有一台打印机用于两个目的:

  • 打印常规文档(Word、Internet 页面等)
  • 从命令行直接打印(由 完成echo "text" > /dev/usb/lp0

这在以前版本的 Ubuntu 中一切正常。不过最近我们升级到11.10,遇到了问题。首先,打印机不再添加到 /dev/usb 中。所以我无法回显到这个路径,也无法从命令行实现打印。

经过一番折腾,我终于找到了解决方法。此解决方法正在编辑/etc/modprobe.d/blacklist-cup-usblp.conf. 该文件内容如下:

# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
blacklist usblp
Run Code Online (Sandbox Code Playgroud)

评论这个黑名单后,该设备在 /dev/usb 中正确显示为 lp0。我遇到了 lp0 的权限问题,但 Luis Felipe Barrera Mora 的回答解决了这个问题。

但是,我现在有一个主要问题需要解决。在我评论黑名单后,打印机在从 Word 文档打印时停止工作。这是合乎逻辑的,因为我禁用了 CUPS 需要的东西。所以基本上我现在只能选择启用常规 CUPS 打印而没有命令行打印,或者我有命令行打印但没有 CUPS 打印。

更新

为了完整起见:我实际上同时连接了两台打印机。一种用于使用 CUPS 和命令行进行打印。另一个 - 爱普生收据打印机 - 仅用于命令行打印。我花了很多天试图让它使用 CUPS 运行,但这是不可能的。但是,这意味着该lpr命令不会解决问题,因为我无法在 CUPS 下使第二台打印机正常工作。我真的需要能够同时/etc/dev/lp0使用 CUPS访问(或类似的路径)和打印。

小智 3

我也有同样的问题,如果你总是给文件lp0添加权限,你必须编辑打印机规则:

$ gksudo gedit /lib/udev/rules.d/70-printers.rules
Run Code Online (Sandbox Code Playgroud)

添加[, MODE="0666"]

该文件包含:

ACTION=="add", ... KERNELL="lp*" ... , MODE="0666"
Run Code Online (Sandbox Code Playgroud)


use*_*950 2

为什么不使用 lpr 从命令行打印?喜欢:

echo "text" > /tmp/someFileName
lpr -P YourPrinter /tmp/someFileName
Run Code Online (Sandbox Code Playgroud)

这是一种解决方法,但应该是一种在不更改某些权限的情况下执行您想要的操作的简单方法......