在Fedora/RHEL/CentOS中使用Windows http/SAMBA打印机
折腾了一上午,终于能在RHEL6下面使用通过windows server 2003的iis共享的打印机了。总结步骤如下。
我的环境:HP LaserJet p1008 连接在一台Windows Server2003上,并进行了iis共享。windows客户机可以通过192.168.1.2/printers看到这台打印机并且能够正常打印。RHEL6客户机也位于这个网络内。能够看到iis打印机页面。
准备:先下载foo2zjs ,参见 http://foo2xqx.rkkda.com/。然后解压
#tar xzvf foo2zjs.tar.gz
进入目录,编译
#cd foo2zjs #make
下载P1008的支持,并安装
#./getweb P1008 //注:今天发现foo2xqx的文件中已经有P1008的ppd文件了,因此可以忽略该步,直接make install (2013-10-29) #make instal
重新配置cups
# make cups
然后到http://localhost:631/ 访问本地的CUPS,点击Administration-Add Printer
(如不能访问web界面,请修改/etc/cups/cupsd.conf ,参考http://www.cups.org/documentation.php )
此时要输入root的用户名密码。
确定后选择Internet打印协议(http),点击Continue
在Connection栏输入在http://192.168.1.2/printers下面找到的打印机-网络名,复制过来。例如我的是
http://192.168.1.2/printers/HP LaserJet P1008/.printer
点击Continue后下一步,输入打印机在本地显示的名称,Continue。
选择品牌(Mark)点击Continue,选择型号。或者直接在Or Provide a PPD File:处上传pdd文件。我从foo2zjs文件夹里选取了pdd文件。
Continue,配置基本的设置就OK了。
这时候如果打印测试页,能够正常打印,会收到错误提示“无法获得作业属性(client:(404) not possible)”之类。但是我看了一下打印的内容是正常了。搜索了一下有说是Linux不能完美支持Windows下的打印机协议等等之类说法。我索性不管这些,在 “系统”菜单-管理-打印 中,右键单击打印机,修改属性,在错误策略中选择了“放弃任务”。然后就不报错了。
不过这样存在一个很严重问题就是,假如CUPS打印服务真的报个什么错误的话,打印不能继续。。。。大家慎重处理!(此问题在今天配置的版本中已经不存在了 2013-10-29)
博客编写时上述配置过程在RHEL/CentOS 6.*系列中测试无误。今天再次配置时在Fedora 19中测试可用。