由于新版本的 CUPS,我突然失去了以前在/dev/usb/lpXXX
. 我用它直接从命令行打印。echo "test" > /dev/usb/lp0
.
搜索后,我找到了解决此问题的方法,方法是blacklist usblp
在/etc/modprobe.d/blacklist.conf
. 这确实有效,但如果我这样做,CUPS 将不再能够与任何打印机通信(我确实需要那个)。那么我如何才能拥有某种直接到达打印机的路径,并且仍然可以使用 CUPS?
注意:某些(收据)打印机无法被 CUPS 识别,因此lpr
不适用于这些打印机。
当我打印某些东西(Firefox 5 以及其他应用程序)时,“颜色”选项始终设置为“颜色 (CMYK)”。如何将“单色”或“黑白”设为默认值?
这是带有 CUPS 1.4.6-5ubuntu1.3的Kyocera FS- C5100DN。
[编辑]输出lpstat -d -v
:
system default destination: FS-C5100DN
device for FS-C5100DN: socket://192.168.0.24
Run Code Online (Sandbox Code Playgroud)
所以现在的问题是:我可以在我自己的计算机上以某种方式更改默认值而不更改服务器上的设置吗?
CUPS 客户端是否需要在本地添加 PPD,即我应该将它们传递给lpadmin -P
?这些客户端通过本地打印服务器打印到远程打印服务器 ( ipp://
),我认为该服务器是根据最佳实践设置的(我不管理它)。它们是 Linux PC。我不认为我在处理远程打印服务器上的原始队列。
我的问题听起来与这个相同,但我的理解是驱动程序和 PPD 不是一回事,PPD 是打印机的一种“功能列表”,带有一些关于如何使用它们的 PostScript 命令。在我看来,这是服务器的工作,但我很难找到任何明确说明这一点的内容。
我和妻子下载了 PDF 博物馆通行证,并在同一台 PostScript 激光打印机上打印出来。令我惊讶的是,她的看起来好多了!左边是她 Mac 的打印输出,右边是我的 Debian Linux 机器发送的。我正在使用 evince 3.14.1、libcairo2 1.15.8、cups 2.1.3 和 Internet 打印协议与 HP LaserJet Pro 400 MFP M425dn 通信(任何其他可能重要的因素?)。
显然,打印机以某种方式没有执行 PostScript 内容,这应该会产生高分辨率渲染。但我不知道要求在我的桌面上预渲染内容,我也不会寻求。
我有什么设置错误,如何提高输出质量?
我经常连接到有很多打印机的网络。当打印机发现正在进行时,GNOME 中会弹出许多分散注意力的消息。我很少使用打印机,所以我更愿意在大部分时间禁用 CUPS。CUPS停止工作,并消除烦人的通知:
systemctl stop cups
Run Code Online (Sandbox Code Playgroud)
我想禁用开机。出人意料的是,后禁用
systemctl disable cups
Run Code Online (Sandbox Code Playgroud)
重启后 CUPS 仍然运行。状态命令
systemctl status cups
Run Code Online (Sandbox Code Playgroud)
产生
? cups.service - CUPS Scheduler
Loaded: loaded (/lib/systemd/system/cups.service; disabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/cups.service.d
Active: active (running) since Tue 2018-11-06 02:35:50 PST; 11s ago
Run Code Online (Sandbox Code Playgroud)
我预计禁用服务将阻止其在重新启动后运行。激活是否因为预设而发生?我试图用 预设“禁用”状态--preset-mode
,但没有用。
我的操作系统是Debian的弹力。
systemctl --version
systemd 232
+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN
Run Code Online (Sandbox Code Playgroud) 据报道,Brother MFC-9340CDW 打印机的默认选项(例如通过 查询lpoptions -l
)设置为:
PageSize/Media Size: *A4 Letter Legal Executive A5 A6 B5 JISB5 JISB6 EnvDL EnvC5 Env10 EnvMonarch Br3x5 FanFoldGermanLegal EnvPRC5Rotated Postcard EnvYou4 EnvChou3 210x270mm 195x270mm 184x260mm 197x273mm
BRDuplex/Two-Sided: DuplexTumble *DuplexNoTumble None
BRInputSlot/Paper Source: AutoSelect *Tray1 Manual
BRResolution/Print Quality: 600dpi *600x2400dpi
BRMonoColor/Color / Mono: Auto FullColor *Mono
BRMediaType/Media Type: *Plain Thin Thick Thicker BOND Env EnvThick EnvThin Recycled Label Glossy PostCard
BRColorMatching/Color Mode: *Normal Vivid None
BRGray/Improve Gray Color: OFF *ON
BREnhanceBlkPrt/Enhance Black Printing: OFF *ON …
Run Code Online (Sandbox Code Playgroud) 在尝试通过lpr
from将文本文件发送到打印机时xterm
,内容已损坏无法识别,其原因最终被追溯到文件的编码。如果我改为使用iconv
(eg, iconv -f utf-8 -t ascii//TRANSLIT
)处理文本,则文件将正常打印。我遇到的另一个建议是设置文档格式(例如,lpr -o document-format=text/utf8
),但这会返回错误lpr: Unsupported document-format "text/utf8"
。我总是可以将lpr
命令别名为包含处理iconv
,但是CUPS
/lpr
系统中是否有更通用的本地 utf-8 支持方法?
编辑:我的操作系统是 Debian 8,我的窗口管理器是openbox
(没有桌面环境)。我可以在 MacOS X 和 Debian7/Gnome3 系统中毫无问题地打印此文件。
从我当前的系统来看,我应该指出,即使在将字符编码从 UTF-8 更改为 ASCII 之后,换行符也不受lpr
. 在iconv
MacOS X 上重新编码和音译后,打印仍然正常工作(因此换行问题也是我当前系统特有的)。
我的笔记本电脑上的本地 CUPS 守护进程在我的 CUPS 服务器上有一个远程打印机的条目。我的本地 CUPS 守护进程认为这台打印机已停止,但事实并非如此。CUPS 为我提供的唯一用于管理此远程打印机的界面是指向服务器上 CUPS 打印机的超链接。
当我不在本地网络上时尝试查询此远程打印机上的状态时,往往会发生这种情况。然后本地 CUPS 将永久标记它已停止并说它找不到它。
但是,一旦我回到本地 LAN,它就永远不会删除'stopped'
状态。(即使重新启动也无济于事)
我可以再次打印的唯一方法是停止我的本地 CUPS 进程,编辑/etc/cups/printers.conf
文件以手动将状态更改为“空闲”,然后重新启动 CUPS 服务器。
肯定有更好的方法吗??
编辑:
哦,是的,我之前通过创建一个新的远程打印机条目解决了这个问题。但是,我找不到任何方法来删除旧的远程打印机条目。我也必须为此编辑printers.conf。有没有办法管理远程打印机条目?
编辑:
这是 CUPS 1.4.3。我还发现了一个“cupsenable”命令,该命令仅在“新增功能”页面和在线的 printers.conf 文档中提及。下次我会尝试一下,看看它是否有效。
在脚本内部,我使用lpr
用户选择的打印机上的命令发送某个文件进行打印。
用户从中选择要使用的打印机列表,我开始使用该lpstat -a
命令,然后将第一个空格之前的所有内容视为打印机的名称。
这有效,但在很大程度上依赖于lpstat -a
命令的特定输出格式。我担心将来(或现在在不同的发行版上)如果输出格式发生变化,它会破坏脚本。
那么,有没有办法以比我正在使用的方式更安全的方式获取所有已安装打印机的名称?
我有一个 shell 脚本,它将 PDF 文件作为参数并使用附加的打印机特定选项打印它。如何将此脚本添加为可以从 GUI 中选择的虚拟打印机?
shell 脚本是一个手动双面脚本,它接受一个 PDF 文件,打印偶数页,使用 zenity 给用户提示,要求用户翻转页面,然后打印奇数页。
我目前的工作流程是:
my_duplex_script tmp.pdf
rm tmp.pdf
有什么办法可以使它成为:
注意:这是在 Linux mint 13 cinnamon 上。我试过了,gnome-manual-duplex
但对我不起作用。
我可以从中打印到 PDF 文件的 GUI 对话框
my_duplex_script
#!/bin/bash
lp_args=
while getopts o: opt
do
case "$opt" in
o) lp_args="$lp_args -o $OPTARG" ;;
\?) echo >&2 Invalid argument; exit 1 ;;
esac
done
shift `expr $OPTIND - 1`
file=$1
page_count=$(pdfinfo "$file" | grep …
Run Code Online (Sandbox Code Playgroud) cups ×10
printing ×7
command-line ×1
devices ×1
evince ×1
lp ×1
lpr ×1
pdf ×1
postscript ×1
shell-script ×1
systemctl ×1
systemd ×1
unicode ×1
usb ×1