在Linux底下进行打印的工具很多,不过我们这里要介绍的仅有目前较广为流行的CUPS (Common Unix Printing System)这一个。
依玛猫的打印文件:[url]http://www.imacat.idv.tw/tech/lnxprint.html[/url]
鸟哥的LPRng简介:[url]http://linux.vbird.org/linux_server/0370samba/0370samba.php[/url]
-------------------------------------------------- ----------------------------
1. 安装打印机与确定启动
再 次说明,并不是所有的打印机都被Linux所支持的,所以当你想要连结一部打印机到Linux系统上时,请务必到 [url]http://www.linuxprinting.org/printer_list.[/url] cgi上去看看是否有被支持喔!如果没有被支持,那就换一部打印机吧!不要进行垂死的挣扎了....
如果你的打印机连接埠为USB或者是平行序列埠的话,那么当你连接上打印机后,可以利用底下的方式测试看看是否成功的连接上了:
[root@linux ~]# echo "Hello printer" > /dev/usb/lp0 <==USB埠
-------------------------------------------------- ----------------------------
2. 设定CUPS的打印机
请先确认你的CUPS已经安装妥当了,原则上,你必须要有底下两个套件存在才行:
cups
我需要让192.168.1.0/24这个网域可以使用打印机
我需要让192.168.1.0/24及127.0.0.0/8可以管理CUPS系统
然后开始这样做:
#底下这个项目在控制谁可以使用CUPS系统,约在772行左右,
#找到这些资料并增加一笔记录:
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.1.0/24
#底下的项目则在设定谁可以登入CUPS系统的管理界面?
#约在830行左右,找到这些资料并进行一些细部修改:
#AuthType Basic
#AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From 192.168.1.0/24
#在最后一行的地方加上这一句
Listen 0.0.0.0:631
#建议您自行处理一下认证问题,请参考基础篇的说明。
#大概在最后几行的地方,找到这一行,将注解拿掉!
application/octet-stream application/vnd.cups-raw 0 -
设定完毕后就可以开始来启动cups系统,可以这样做:
[root@linux ~]# netstat -tunlp | grep '631'
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN 18271/cupsd
udp 0 0 0.0.0.0:631 0.0.0.0:* 18271/cupsd
USB连接埠: usb:/dev/usb/lp0
平行序列埠: parallel:/dev/lp0
网络打印机: ipp://ip/打印机型号
网络邻居打印机: smb://user:password@host/printer
假设我们的Samba上头接了一部usb连线的打印机,而我要将这部打印机取名为hplaser2300时,你可以使用浏览器连接到Samba主机上头,必须注意到网址喔:
图一、CUPS的管理界面示意图
如上图一所示,先在网址列的地方务必要输入端口才行!然后按下箭头『 2 』所指的地方,亦即是『Manage Printer』之后再按下『Add printer』的按钮,就会出现如下画面,记得要填写正确的资料喔!
到此为止我们可以假设你的CUPS已经有一部打印机存在了,即使该打印机目前无法工作,但是就是有一部打印机嘛! ^_^!接下来看看如何将他连结到咱们的Samba服务器中吧!
-------------------------------------------------- ----------------------------
3. 在smb.conf当中加入打印机支持
然后开始告诉Samba将这部打印机给他分享出去吧!你需要这样处理:
[global]
[printers] <==这个分享的资源名称一定是printers
或许你会想,打印机的型号这么多,那么Linux该如何提供这些打印机的驱动程式啊?岂不麻烦?还好啦, CUPS主要是透过利用Post.的打印语言与打印机沟通的,因此用户端只要取得post.的驱动程式他们就能够使用咱们的Samba服务器所提供的打印 机了!如此一来,不论打印机的型号为何,只要他们能够支持Post.的打印格式,OK搞定!而且CUPS官网本身就有提供CUPS的Post.驱动程式 啰!
支持多种CUPS版本:[url]http://ftp.easysw.com/pub/cups/windows/[/url]
支持CUPS 1.2以上版本:[url]http://www.cups.org/windows/software.php[/url]
C:\WINDOWS\system32\spool\drivers\w32x86\3
里 面的PS开头的档案通通下载下来,应该有四个档案的,请将他复制成为小写的档案,并且放置到你Samba主机上的/usr/share/cups /drivers/目录下,然后将cups- samba-5.0rc3.tar.gz解压缩后执行./cups-samba.install档案,就能够将驱动程式通通安装到/usr/share /cups/drivers/目录下了!这就是基本的驱动程式!在鸟哥的这个目录底下至少含有这几个档案就是了:
-r--r--r-- 1 root root 14234 Sep 24 2002 cups5.hlp
-r--r--r-- 1 root root 280268 Jan 4 2004 cupsdrv5.dll
-r--r--r-- 1 root root 219540 Jan 4 2004 cupsui5.dll
-rw-r--r-- 1 root root 129024 Dec 27 14:18 ps5ui.dll
-rw-r--r-- 1 root root 455168 Dec 27 14:18 p.5.dll
-rw-r--r-- 1 root root 27568 Dec 27 14:18 p..hlp
-rw-r--r-- 1 root root 792644 Dec 27 14:18 p..ntf
[url]http://linux.vbird.org/linux_server/0370samba/cups-samba-windows.tgz[/url]
[print$]
[root@linux ~]# chown dmtsai /etc/samba/drivers
#因为我们将打印机管理员以及驱动程式管理员的身份设定为dmtsai这个使用者, 因此存放的目录也要改变一下权限才行呐!
[root@linux ~]# smbclient -L //127.0.0.1 -U dmtsai
Password:
Domain=[VBIRDSERVER] OS=[Unix] Server=[Samba 3.0.10-1.4E.9]
#瞧!有看到一部打印机以及驱动程式所在的分享资料啰!
参数:
-H :后续接的是Samba主机名,本机的话可以直接用localhost即可;
-h :后续接的为CUPS的主机名,同样的可使用localhost即可;
-a :搜寻所有可用的打印机;
-v :列出更多的资讯;
-U :打印机管理员
范例:利用前面的说明将打印机驱动程式挂上SAMBA
Password for dmtsai required to access localhost via SAMBA:
#这里会闪过很多的讯息,说明已经安装了某些资讯,底下鸟哥仅列出简单的讯息而已。
Printer Driver hplaser2300 successfully installed.
Succesfully set hplaser2300 to driver hplaser2300.
drwxr-xr-x 3 dmtsai dmtsai 4096 Dec 27 14:40 W32X86
最后在驱动程式的存放目录会多出一个W32X86的目录,你可以查询一下该目录的内容,那就是预计要给用户端使用的驱动程式啦!这样就搞定了!不过,为了将所有的资料通通驱动,建议您将CUPS及SAMBA通通重新启动吧!
[root@linux ~]# /etc/init.d/cups restart
[root@linux ~]# /etc/init.d/smb restart
-------------------------------------------------- ----------------------------
4. 一些问题的克服
如果一切顺利的话,你在Windows用户端应该可以顺利的连接到打印机啰!开心吧!不过,如果你曾经印错资料,那么该如何进入Linux的Samba主机将该资料移除呢?你最好知道底下的几个指令,关于这些指令的进阶用法则请自行man了:
[root@linux ~]# lpq
hplaser2300 is ready
no entries
#列出打印机的工作,若有打印工作存在时,会如下所示:
hplaser2300 is ready and printing
Rank Owner Job File(s) Total Size
active dmtsai 5 smbprn.00000003测试页42954752 bytes
打印工作就是这样进行的啦!赶紧试看看吧!
来自 https://blog.51cto.com/yuanbin/115768
https://blog.csdn.net/caoshunxin01/article/details/79355243
为samba共享的打印机添加Windows驱动
首先在samba中增加一个print$的共享,用来存放windows驱动。windows网上邻居共享打印机也是同样采用这样的方式安装驱动的。
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
再拷贝一些windows下必要的文件到/usr/share/cups/drivers/,其中一部分在cups-windows包中,其余需要到windows XP下自行拷贝,罗列如下:
-rw-r--r-- 1 root root 803 01-15 11:38 cups6.inf
-rw-r--r-- 1 root root 72 01-15 11:38 cups6.ini
-rw-r--r-- 1 root root 12568 01-15 11:38 cupsps6.dll
-rw-r--r-- 1 root root 13672 01-15 11:38 cupsui6.dll
-rw-r--r-- 1 root root 728576 01-15 14:04 ps5ui.dll
-rw-r--r-- 1 root root 543232 01-15 14:03 pscript5.dll
-rw-r--r-- 1 root root 14787 01-15 14:05 pscript.hlp
-rw-r--r-- 1 root root 1060548 01-15 14:05 pscript.ntf
***只需要运行cupsaddsmb -H localhost -U user printer1 -v即可为打印机添加windows驱动。
来自 https://os.51cto.com/art/200902/109892.htm