前言
在linux系统下要使用Windows下共享的打印机,必须要在linux下安装cups和samba服务。其中cups是linux系统下管理打印机的服务,samba是实现局域网内的不同计算机之间提供文件及打印机等资源的共享服务。要确保linux下能使用windows下的共享打印机服务,必须要使linux服务器满足如下三个条件:
1、linux服务器上正确安装cups和samba服务;
2、linux服务器正确安装打印机驱动程序;
3、linux服务器能正确的找到windows共享打印机。
具体步骤
一、确保打印机服务程序正确安装
在你的Linux服务器上安装cups和samba程序[1]:
$ yum install cups
$ yum install samba
$ chkconfig --level 234 cups on #开启自启动服务
$ chkconfig --level 234 smb on #开启自启动服务
如已安装,也可用如下指令验证:
$ rpm -q cups #如已安装cups,会输出cups-1.4.2-74.el6.i686提示。
$ rpm -q samba #同上
二、确保打印机驱动程序在Linux上正确安装
(注:这里确保linux打印服务正常使用最关键的一步!笔者在网上搜索大量的相关文章,但多数没有就如何正确选择合适的Linux打印机驱动程序进行详细阐述。)
1、请登录http://www.openprinting.org/printers推荐的驱动程序进行正确安装,如下图所示。
本次打印机型号为:HP LaserJet P1505,点击“show this printer”按钮查询,进入http://www.openprinting.org/printer/HP/HP-LaserJet_P1505页面。笔者的是Mostly两个小企鹅,如果你的打印机不被支持则说明无法在linux环境下使用该打印机服务。
查询结果分以下四种情况[2]:
(1)Perfectly:完全支持linux下打印,并且可以使用打印机所有功能和打印分辨率
(2)Mostly:大部分功能支持linux下打印,有一些小缺陷
(3)Partially:只有部分功能支持linux下打印,许多功能不能实现,比如彩色打印机只能打印黑白图像
(4)Paperweight:完全不支持linux下打印
3、查询页面下方有Recommended Driver(推荐驱动):点击(Home page)来到你打印机的驱动页http://foo2xqx.rkkda.com/。
4、在打印机的驱动页http://foo2xqx.rkkda.com/中,参考如下指令进行输入:
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
$ tar zxf foo2zjs.tar.gz
$ cd foo2zjs
# 编译:
$ make
# (选择安装)获取额外的打印机驱动相关文件,如颜色修正的.ICM 配置文件和fireware文件。 如你的打印机是如下型号,请执行如下语句
$ ./getweb P1005 # Get HP LaserJet P1005 firmware file
$ ./getweb P1006 # Get HP LaserJet P1006 firmware file
$ ./getweb P1007 # Get HP LaserJet P1007 firmware file
$ ./getweb P1008 # Get HP LaserJet P1008 firmware file
$ ./getweb P1505 # Get HP LaserJet P1505 firmware file
# 安装驱动
$ su # 切换到超级用户
$ make install
# (选择安装) 配置 hotplug (这里是支持USB接口打印机服务; HP LJ P1005/P1006/P1007/P1008/P1505):
$ make install-hotplug
# 如果你使用CUPS来管理你的打印机服务,输入如下指令
$ make cups
# 重启cups服务
$ service cups start 或
$ /etc/init.d/cups start
至此,你的打印机驱动程序已安装完成。
三、linux服务器能正确的找到windows共享打印机
1、在linux下打开浏览器,输入http://localhost:631进入cups的管理界面,点击Add printer添加一个打印机,如下图所示。
2、因为我们需要使用windows下的共享打印机服务,请选择“Windows Printer via SAMBA”。
3、在“Connetction”输入框填写共享打印机的位置,如下图所示。
这里笔者的smb路径和读者的实际路径会不一样,那如何找到你自己的共享打印机smb路径?这里笔者介绍如下技巧。
首先打开你的Linux系统桌面,选择“系统“->”管理”->”打印”,如下所示。
选择新建打印机,进入如下界面,在smb://输入栏中输入你的共享打印机IP地址。这里笔者的是192.168.xxx.xx。因此输入“192.168.xxx.xx/“(注意,不要漏写”/“),点击输入”浏览“,可以看到你的SMB浏览器下的打印机。选择对应的共享打印机,点击“确定”按钮。
这里就出现了正确的smb安装位置。点击“验证”,会弹出对话框告知你该打印机是否可以被访问。复制这个smb路径,回到cups管理界面,在“Connetction”输入框粘贴即可。
4、回到http://localhost:631下的cups的管理界面,接下来会进入如下页面。Name、Description、Location可随意填写,不会影响打印机的正确使用。
5、这里选择刚刚装好的驱动文件“HP LaserJet P1505 Foomatic/foo2xqx(en)”。注:这里HP LaserJet P1505可能会对应多个驱动程序,一定要选择正确的驱动程序文件名。
四、测试打印机服务
1、在http://localhost:631下的cups的管理界面,选择“Print Test Page”,进行打印测试页。如可正常打印,说明你已正确安装打印机服务程序。
或者也可进入linux桌面下,选择“系统“->”管理”->”打印”,进入如下页面进行打印测试。
注:如果读者发现仍无法顺利打印测试页,则可先在windows环境下检查是否可以正常打印。
参考资料:
[1] http://blog.sina.com.cn/s/blog_53b1749c0100qjjh.html zhixiaomu的博客
[2] http://www.centoscn.com/image-text/config/2013/0804/998.html 玲珑巫女的学习笔记