[Ubuntu]共享PDF打印机

Ubuntu[配置了PDF打印机](214)之后,使用很方便,想制作pdf文件了,就直接打印到这个打印机上就可以了。但怎么能够共享给局域网内的其他用户,让他们也方便的使用呢?

刚开始从Samba下手,结果配置了半天,不是连接不上,就是安装上了打印机后仍然提示“拒绝访问”。看了这篇[如何架设Linux打印服务器](http://firehare.blogbus.com/logs/2005/09/1426706.html)之后,转向cups着手,很简单就解决了。

cups一般在Ubuntu都是安装好了的,配置文件为/etc/cups/cupsd.conf,默认设置只监听localhost,修改成监听631端口,631就是cups服务所使用的端口:

# Only listen for connections from the local machine.
#Listen localhost:631
Listen 631

按照上面的修改,配合默认设置中,好像已经开放了对局域网内的访问,因为下面有分别对localhost@LOCAL赋予访问权限的设置:

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow localhost
  Allow @LOCAL
</Location>

所也我也没作其他设置改动,后来局域网内其他的机器访问也都正常。

监听端口修改之后,重启服务,别人就能够使用cups服务了,使用分两种方式:

一种是web访问,可以查看打印机列表、打印机设置以及所有完成的打印任务等,直接通过web访问

http://my_machine:631/

就可以了。

第二种使用方式自然就是配置成网络打印机了,通过web访问可以得到打印机的地址,比如我的两台打印机分别为:

http://my_machine:631/printers/LaserJet-1150
http://my_machine:631/printers/PDF-Printer

第一个是实际的打印机,第二个是PDF打印机,在客户端上安装打印机的时候,使用这个地址就可以了。这也是cups共享打印机方式和samba的最明显区别了,如果samba配置好了,网络打印机的地址一般应该是:

\\\\my_machine\\LaserJet-1150

这种形式。在winxp添加网络打印机的操作时,也可以看到这两种形式的例子,分别对应不同的类型。 在安装PDF打印机的时候,需要选择驱动程序,个人觉得最好选择一个彩色的PostScript打印机,比如我选的就是“MS Publisher Color Printer”,这样可以打印彩色的PDF文件。

打印机正确共享之后,基本上就可以提供PDF打印服务了,由于没有配置身份验证,局域网内的用户都是匿名使用的打印服务,所以打印到PDF打印机上的任务,所生成的PDF文件默认是保存在/var/spool/cups-pdf/ANONYMOUS这个目录之下的,所以在samba共享目录中创建一个到这个目录的链接文件即可:

ln -s /var/spool/cups-pdf/ANONYMOUS/ /home/fwolf/links/public/pdf_printer

不用担心访问权限问题,这个目录的属性是777,owner是nobody:nogroup。

我以前说过,PDF打印机默认会把文件存储在$HOME/PDF目录之下,好像不能修改,其实是错误的,看看/etc/cups/cups-pdf.conf这个文件,用户打印和匿名打印的存储方式都在里面定义着呢。

最后仍然存在一些遗憾,cupsd不识别中文文件名,打印中文名称的文件时,会生成“_____”这样的文件名,需要手工修改为正确的名称。

另外我在VMWare里面用winxp添加Ubuntu主机的cups共享打印机时,连接PDF打印机一切正常,连接实际打印机就会“没有响应”,不知为何。

PS: cups打印出来的测试页上有标尺,能够当刻度尺用么?准确否?谁验证过?

2 thoughts on “[Ubuntu]共享PDF打印机”

Leave a Reply

Your email address will not be published. Required fields are marked *