我在Linux服务器上有一个cups(cups-pdf虚拟打印机)的远程打印机。 BSD、Hp-ux 和 linux 工作正常,在 Solaris 10 上我遇到这个问题,仅打印横幅,而不打印文件文本。我已经这样配置打印机
svcadm disable svc:/application/print/server:default
svcadm enable svc:/application/print/server:default
lpadmin -x cupsprinter||echo
lpadmin -p cupsprinter -v /dev/null
lpadmin -p cupsprinter -m netstandard
lpadmin -p cupsprinter -o dest=remotesite -o protocol=bsd -o timeout=22
lpadmin -d cupsprinter
lpadmin -p cupsprinter -I postscript -T PS
accept cupsprinter
/usr/bin/enable cupsprinter
在 Linux 服务器上,错误日志中没有任何内容 是什么原因导致此问题?
答案1
找到解决方案。在 Linux 上,如果使用 inetd,即使从 UNIX 客户端,此行也能正确打印
printer stream tcp nowait lp /usr/lib64/cups/daemon/cups-lpd cups-lpd -o document-format=application/octet-stream -o job-sheets=none,none
重要的部分是“-o document-format=application/octet-stream -o job-sheets=none,none”
如果使用 xinetd 使用此文件
service printer
{
socket_type = stream
protocol = tcp
wait = no
user = lp
server = /usr/lib64/cups/daemon/cups-lpd
server_args = -o document-format=application/octet-stream -o job-sheets=none,none
}
答案2
尝试发送较大的文本文件作为测试,尤其是当您的测试文本文件是一个简短的一页以下文档时。打印机守护程序可能正在等待换页,然后再打印横幅后面的第一页。回想一下几年前 Solaris 的类似问题;即 1999 年。
从您的评论来看,听起来即使从较大的文件中您也没有得到任何输出。也许尝试直接发送换页字符。
dev/null uri 也可能值得修改,至少为了测试,指定 JetDirect 或其他位置:
lpinfo -v
socket://192.168.0.105