我在 12.04 x64 上使用热敏打印机 tm-t20,带有 cups 1.5.3-0ubuntu4 和 Epson 提供的驱动程序 tmt-cups-1.3.2。
打印机在第一次打印后就打印出乱码。如果我关闭它然后再打开,它会打印正常(第一个作业),但如果我发送另一个作业,它只会打印乱码。打印机是串行的,我正在使用 USB 到串行转换器,我尝试使用不同的适配器来解决 USB 到串行转换器的问题。
在 cups Web 界面上,作业列表中显示以下错误:
Stopped
"/usr/lib/cups/filter/pstopdf failed"
部分日志:
[Job 15] Error: /dictstackunderflow in --end--
[Job 15] Operand stack:
[Job 15]
[Job 15] Execution stack:
[Job 15] %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1914 1 3 %oparray_pop 1913 1 3 %oparray_pop 1897 1 3 %oparray_pop 1787 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 -- nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval--
[Job 15] Dictionary stack:
--dict:1174/1684(ro)(G)-- --dict:0/20(G)-- --dict:77/200(L)--
Current allocation mode is local
[Job 15] GPL Ghostscript 9.05: Unrecoverable error, exit code 1
[Job 15] PPD uses qualifier 'Gray..203x203dpi'
[Job 15] Calling FindDeviceById(tmt20)
Failed to send: org.freedesktop.ColorManager.Failed:device id 'tmt20' does not exists
[Job 15] Failed to get profile filename!
[Job 15] no profiles specified in PPD
D [30/Sep/2012:00:25:21 -0300] [Job 15] Ghostscript command line: /usr/bin/gs -dQUIET -dPARANOIDSAFER -dNOPAUSE -dBATCH -dNOINTERPOLATE - sDEVICE=cups -sstdout=%stderr -sOutputFile=%stdout -r203x203 -dDEVICEWIDTHPOINTS=204 -dDEVICEHEIGHTPOINTS=841 -dcupsBitsPerColor=1 - dcupsColorOrder=0 -dcupsColorSpace=3 -dcupsRowCount=24 -scupsPageSizeName=RP80x297 -I/usr/share/cups/fonts -c -f -_
D [30/Sep/2012:00:25:21 -0300] [Job 15] envp[0]="CUPS_CACHEDIR=/var/cache/cups"
我尝试降级和升级 Cups(手动安装),但由于 Cups 无法工作(到处都是错误),所以我无法向打印机发送任何内容。
任何想法?
答案1
经过一番痛苦尝试,我终于发现问题出在串口转 USB 电缆上(用于将串行打印机连接到 USB 端口)。我尝试了两种不同的串口转 USB 电缆,但问题仍然存在,最后我得出结论:如果未连接到“真正的”串行端口,打印机将无法正常工作。
我在一台带有串行端口的 PC 上以相同的条件测试了打印机,它工作正常,只需安装 epson 提供的驱动程序并将 chmod 777 赋予 /dev/ttyS0。在作业列表中,有时我会看到错误:“/usr/lib/cups/filter/pstopdf 失败”。但打印机打印正常,就像没有发生错误一样。