几个月前我在这里问过如何在 Ubuntu 中使用 lp 命令(CUPS)打印和检查结果。
经过一些工作后,我能够打印正常的文本文件。我能够选择一些选项(双面打印、介质尺寸、纸盘输入等)进行打印
我在这里得到了 linux 驱动程序(PPD 文件):https://www.openprinting.org/download/PPD/
现在我遇到了一个小问题:当我将 .pdf 文件发送到打印机(通过 TCP-IP 连接的 Ricoh MP Aficio 1106 EX)时,打印速度变慢,需要 30 秒才能将文件发送到打印机。 .txt 文件在我发送时打印。您知道如何解决吗?
我尝试将机器的套接字更改为 9100 端口,但这只会产生错误。
编辑1:
我尝试使用 LPR 命令,而不是 LP:
lpr -sPrinterIP /absolute/path/to/file.pdf
但工作也很慢。
编辑2:
我安装了 qz-tray,一种打印服务器/API。当我尝试 PDF 演示时,它打印速度也很慢。
EDIT3:我现在尝试使用默认的 PDF 查看器(EVINCE),因为我虽然内存不足并打印了相同的文件。它运行良好,速度正常。
编辑4:我绑定了一些其他驱动程序(通用且由打印机制造商推荐的驱动程序),速度相同。
编辑5:
我找到了这个链接:https://en.opensuse.org/SDB:Using_Your_Own_Filters_to_Print_with_CUPS
但无法理解过滤是否是“f..king me off”,因为我的打印机是 PCL 打印机(并且我正在使用 pxl 驱动程序...)。有人能给我解释一下吗?
编辑6:
找到问题的根源:当我打印纯文本 pdf 文件时,它就像一个魅力。但是,当我发送 image-pdf 文件时,打印会进入预打印过程(我不能完全保证这一点),并需要 +30 秒的时间将任何包发送到打印机(这已使用wireshark 检查)。
我可以假设 PPD 文件(由理光支持提供的驱动程序文件)在代码中包含发送任何命令来处理文件的任何内容。
我在 PPD 文件中找到了这个。我认为这是这个缓慢问题的根源:
*%========== Ghostscript Command line ==========
*FoomaticRIPCommandLine: "(printf '\033%%-12345X@PJL\n@PJL JOB\n@PJL SET COPIES=&copies;\n'%G|perl -p -e "s/\x26copies\x3b/1/"
(gs -q -dBATCH -dPARANOIDSAFER -dNOPAUSE -dNOMEDIAATTRS -dNOINTERPOLATE %B%A%C %D%E | perl -p -e "s/^\x1b\x25-12345X//" | perl -p -e "s/\xc1\x01\x00\xf8\x31\x44/\x44/g"
(printf '@PJL\n@PJL EOJ\n\033%%-12345X&apos"
*End
找到这篇文章https://lists.linuxfoundation.org/pipermail/printing-foomatic/2012/002791.htmltaht 证实了我的想法:ppd 驱动程序正在使用 Ghostcript 渲染所有文件。
编辑7:理光支持人员告诉我,“lp”打印命令可能正在使用“默认PDF查看器”来处理文件,并减慢打印过程。我不知道如何检查。
多谢。
答案1
更换驱动程序。为什么?适用于 Linux 的推荐 RICOH 驱动程序使用效率不高的 PPD 文件。这会减慢文件的预处理速度。 (Windows 驱动程序也可以使用 PPD 文件,如果文件未优化,这会减慢进程)
我用Gutenprint驱动解决了这个问题。现在真正的工作是为您的打印机获取正确的驱动程序,因为并非所有 RICOH 机器都存在 Gutenprint 驱动程序(其他制造商也存在 smae 问题)。与 1106EX 类似的 gutenprint 驱动程序是 Aficio MP 1100 驱动程序。但发送 lp 命令时要小心:InputTray 有不同的名称。