|
发表于 2009-11-26 19:13:50
|
显示全部楼层
回复 第1, 11, 12 帖的
用linux好久了,但是今天第一次在linux上有了打印需求,于是也配置了一把cups。我的问题跟几位的问题差不多。也是一台打印机连在一台windows机器上,通过windows sharing(也就是samba)共享出来,我的linux需要通过cups, samba去使用这台打印机。打印机是hp1020
不说前段怎么折腾cups,怎么从啥也不知道到学会使用,怎么折腾打印机驱动,也不说步骤的具体细节,怎么配置,怎么设置,该选哪个,这些都不说。就说最后,我就假设大家都和我一样,一切都已经搞定了——cups装好,配置好,添加了samba的打印机,驱动 foo2zjs 装好,samba装好,等等等等。
然后开始打印——按着经验和网上的说法,这时应该高兴的看着打印**出期望的东东来。。。可是我的结果和第1, 11, 12 帖的xds们一样——打印机没反应。linux这边没有任何错误,看cups的log也没显示有任何错误;windows那边,在打印任务里可以看到有个“远程下层文档”“正在打印”,说明cups已经能够通过samba使用windows的共享打印机了,但是那个文档就一直处在那个“正在打印”的状态,取消都取消不了,只能断开打印机再插上。
这个问题折腾了我很久很久,直到我用命令行在前台打开了acroread,准备用acroread打印一下试试(之前都是用firefox在试验打印)。当然结果还是一样,在acroread按下打印,windows那边还是出现了那个“正在打印”的“远程下层文档”。于是我很绝望的关了acroread。这时,这时我看到了希望!前面说了,我是在终端下打开了acroread,acroread的错误信息全打印在了终端里,看看底下这几句:
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `lpq -P HP1020(192.168.0.215) 2>/dev/null'
sh: -c: line 0: syntax error near unexpected token `('
sh: -c: line 0: `lpq -P HP1020(192.168.0.215) 2>/dev/null'
知道原因了吧,我在cups里建立的打印机名字叫做 HP1020(192.168.0.215),带括号。其他程序在打印时,会通过shell调用这个命令 lpq -P HP1020(192.168.0.215) (或通过脚本,或通过system()系统调用),而shell会对没有引起来的括号做出别的解释,所以这条命令就失败了,于是打印就没有完成。
于是我赶紧修改了打印机的名字,然后再次试验——oh, yeah,终于成功了!
我问题的现象和第1, 11, 12 帖的一样,但是我不知道具体的原因是否一样。我这里说的就是为了给大家提个醒——在大量工作都做到位的时候,别像我一样因为这么个小错误而被绊住了脚:)
我的cups是1.4.2,我用的系统是 gentoo
最后责怪一下cups,在我建立打印机,设置名字时,它只提示我不能输入空格之类的字符,没有提示我括号也不行阿。 |
|