当前位置:Linux教程 - Linux - 轻松搞定Linux打印

轻松搞定Linux打印

摘要

到目前为止,Unix/Linux下的打印有太多的限制。但是通过安装CUPS系统,你就拥有了一个通用的打印解决方案。(1,100字)

欢迎访问Ask the Geek的最新版本。正如在上一个栏目中提到的一样,本周我们要介绍使用通用Unix打印系统(Common Unix Printing System,CUPS)的一些问题,它可以向你介绍一些网络上的通用解决方案。

Unix/Linux中的打印领域已经很久都没有多少变化了。我们仍在使用原来的lpd(行打印机守护进程),我们并没有为IPP(Internet Printing Protocol,Internet打印协议)提供支持,我们也不能使用多种打印机。但是这种情况正在转变,而且是在迅速转变。一个新产品正在轰炸打印的舞台。


CUPS软件为Unix/Linux用户提供了一种高效可靠地管理打印的方法。它天生就能够支持IPP,具有和LPD、SMB(服务器信息块,也就是连接到Microsoft Windows的打印机)和JetDirect的接口。CUPS可以提供网络打印机浏览,可以使用PostScript打印机描述(PPD)文件。简而言之,使用CUPS你在Linux机器上就可以象在Windows的机器上一样简单地使用打印机,但是具有了Linux的优点。


CUPS使用过程介绍

让我们亲自操刀来演练一下吧。首先,我们需要获得CUPS。如果你现在正在使用Mandrake 7.2,那么你就已经有CUPS了。(举贤不避亲;在我家的机器上就是使用的Mandrake 7.2。)如果你使用的是其它发行版本,那么就就需要下载它了(访问发行版本的站点来寻找资源吧--见本文末尾Resources,译者著)。


下载CUPS之后,你就得把自己原来的打印软件删除了。我将以运行Red Hat 6.2的机器为例说明整个过程。在这种机器上,在安装CUPS之前,你必需删除lpr、printtool和rhs-printfilters。如果你的CUPS不能正常工作,那么你就会希望这些包还可以方便使用。如果CUPS并不如你所愿,你可以重新安装这些包继续工作。

要删除这些包,输入:

rpm -e lpr printtool rhs-printfilters


然后,通过输入以下内容安装CUPS:

rpm -ivh cups-1.1.4-linux-2.2.14-intel.rpm

注意你的文件名可能有点差异。


CUPS现在就安装好了。你应该看到了如下信息:

cups: scheduler started


这个信息就告诉你CUPS正在运行、等待打印任务。


你可以通过命令行或者基于Web的管理工具对CUPS进行管理。我们从通过命令行接口中增加一个打印机开始介绍。使用root用户,输入:

/usr/sbin/lpadmin -p LaserJet -E -v parallel:/dev/lp0 -m laserjet.ppd


上面的lpadmin命令执行了以下任务:

1. 增加一个名为LaserJet的打印机 (-p)
2. 启用这个打印机可以被用户访问 (-E)
3. 设置使用的设备和设备类型 (-v)
4. 使用驱动/PPD文件laserjet.ppd (-m)


既然我们是在命令行中,测试打印机最快的方法是输入:

/usr/bin/lp -d LaserJet /etc/aliases


上面的lp命令会把/etc/aliases文件打印到LaserJet打印机中(-d)。如果输出结果是你的文件别名,那么你就要全部设置了。当然,这是你可以使用CPUS的最简单设置。


你也可以使用-p选项来设置打印任务的优先级。例如:

/usr/bin/lp -d LaserJet -p 90 /etc/aliases


通过增加-p 90选项,你就声明了自己的打印任务的优先级是90,该值的范围是100。这个打印任务会在其它优先级小于90的打印任务之前打印 -- 包括那些没有设置优先级的任务,因为缺省的优先级是50。


lp命令的完全选项列表在man page中可以找到。这些选项包括上面说明的内容,又增加了一些诸如指定打印多少份拷贝之类有用特性的选项。


禁用打印机

我们已经成功添加了一个打印机并对其进行了测试。如果我们希望禁用打印机应该怎样处理呢?要实现这个功能,我们就要使用disable命令:

/usr/bin/disable -r "Changing Paper" LaserJet


上面的disable命令将禁止使用打印机LaserJet并声明不能使用的原因(-r)是"Changing Paper"。选项-r是让用户了解打印机状态的一个好法子。


在换完纸之后,你就可以使用enable命令重新启用这个打印机了,例如:

/usr/bin/enable LaserJet


接下来是一个逻辑问题:如果你没有LaserJet怎么办?CUPS缺省的安装是使用HP和Epson打印机的驱动程序。它几乎覆盖了个人打印机的大部分范围(对Cannon迷们只能说抱歉了)。如果你使用的打印机不是这两种品牌,也不要失望。你还有其它选择。如果你是一个自由软件的狂热分子,那么你就可以打开Web浏览器,访问LinxPrinting.org的Web站点。或者,如果你并不这么狂热,那么你也可以购买ESP Print Pro(见Resources)。


LinuxPrinting.org的Web站点有很多打印机的驱动程序。其中包括一个CUPS PPD文件生成器。很多打印机都需要一个PPD文件。我就是如此幸运,刚好用的是不能支持的打印机,我正考虑把它当压纸器用了 -- 是的,就是HP LaserJet 3150。


ESP Print Pro是由Easy Software Products开发的,这个公司最初开发了CUPS。我个人认为支持提供好产品的公司是相当重要的。ESP Print Pro是一个接口良好的CUPS,可以支持2,300种打印机。不幸的是,除了Linux独立许可证之外,它价格十分昂贵。


简而言之,CUPS的配置并不难,除了基于Web的配置界面之外,还有一个GPLd版本。ESP Print Pro产品的主要优点是它包含的巨大数量的打印机驱动。如果你是一个经销商,那么我建议你先浏览一下LinuxPrinting.org,看一看你的打印机能不能被支持。如果答案是否定的,就将ESP出局,不要用它了。


在下一次的Ask the Geek栏目中,我们会继续讨论CUPS,包括一些免费的图形管理界面(例如KUPS)、安全基础和网络打印。在此之前,小心疯狗,好好吃饭!


在Linux上你有困惑许久的问题吗?把你的问题在Ask the Geek讨论区(http://forums.itworld.com/webx?230@@.ee6c981)张贴出来吧,或者把你的问题用email(askthegeek@linuxworld.com)发给我。我们也许会为你指点迷津!两周后见。


作者简介

Joshua Drake是一个电子商务和Linux顾问,他有自己的公司Command Prompt。他使用Linux已经有9年的历史了,同时是Linux文档项目的Webmaster。他其它的工作包括LinuxPorts.com站点和OpenDocs出版公司。


Resources:

Mandrake Software:
http://www.linux-mandrake.com
Common Unix Printing System (CUPS):
http://www.cups.org
HPs open source printer site:
http://hp.sourceforge.net
LinuxPrinting.org:
http://www.linuxprinting.org
Easy Software Products:
http://www.easysw.com


原文URL:
http://www.linuxworld.com/linuxworld/lw-2000-11/lw-11-geek_1.html