关于Linux打印子系统的一些问题和设置

Linux下打印似乎远比Windows来的复杂和困难,这只是表象而已,事实上Linux/Unix系统的打印子系统的设计思想和实现上与Windows有点不一样,更符合Unix的哲学,如果套用Windows的打印系统思想去理解Unix打印子系统会比较晦涩和难于理解。从网络上总结了一些关于Linux打印子系统的资料和介绍罗列在这里,希望对以后配置Linux/Unix打印系统有所帮助。

PostScript是Unix世界的打印通用语言。不过它需要打印机能识别该语言,否则就需要翻译器了。带有PostScript解析器的高档打印机可以直接接受PostScript语言的打印内容然后把它输出为实际的页面。这是为什么Linux/Unix下很多程序都有打印到PostScript页面的选项的原因了,例如Mozilla/Firefox有打印到PS文件的选项。
碰到打印机本身不能支持PostScript语言的解析时,就需要一些所谓的过滤器来完成PostScript到打印机本地语言的翻译过程。
使用PostScript的好处就像Unix用文件来操作设备一样,达到简单的统一打印接口的目的,没有Windows那么复杂的驱动程序系列了,缺点也是明显的,在今天很多抵挡的打印机,特别是桌面系统上,没有PostScript解析器的支持。所以在Linux上通常使用Ghostscript软件包来完成从PostScript到打印机的翻译过程。

Ghostscript is a set of software that provides a PostScript(TM)
interpreter, a set of C procedures (the Ghostscript library, which
implements the graphics capabilities in the PostScript language) and
an interpreter for Portable Document Format (PDF) files.


这是Ghostscript的介绍说明。

BSD LPD打印系统
这个打印系统源自于伯克利的Unix发行版,BSD
LPD是用于Linux发行版(比如Slackware)的第一个打印系统。现在仍然有发行版(Debian、Slackware)还会带有这种假脱机打
印程序。BSD打印系统核心的功能仅限于队列任务。它由一个后台程序(lpd)及一些位于/etc目录下的配置文件组成,在这些配置文件中有着队列和属性
的一些定义。在相应的目录下,还有一系列基本的用于提交、删除和处理任务使用的命令(lpd、lprm、lpc)。BSD
LPR是BSD打印系统重要一个部分,因为它定义了LPD网络协议,而该协议是用于提交任务至远程LPD后台程序的,并且它允许Unix工作站实现一个打
印服务器的功能。现在,所有的网络打印机都支持这个协议。由于它使用范围非常广泛,所有其它打印系统都要求至少可以和其它的LPD后台程序进行会话。LPD协议传送数据被分成两个部分。首先会生成一个描述任务的控制文件,并且传送该文件。该控制文件包含有源用户、文件名和所有与工作相关的信息。接着就会传送数据文件,它的格式完全取决于目前正在使用的打印语言。

LPRng系统(LPR Next Generation)
该系统实际上重写了原来的BSD
LPR系统,但原有概念都保留了下来。保留了printcap文件的格式,但是它还引入了一些新的属性以使配置过程更加灵活。过滤器定义可以被独立出来,
并且还可以定义真正的I/O过滤器。用户也可以通过在本地机主目录下编写printcap文件来定义自己的队列。LPRng打印系统的优点:1、不需数据
库环境就可以执行lpr lpc
lprm命令。2、打印队列可以自动转向。3、打印工作可以自动保留。4、多重打印机可以使用同一打印队列。5、客户端不需这些SUID
root。6、可以大幅度提高安全性检查。7、可以使用Printconf工具维护配置文件(/etc/printcap)。LPRng还提供了模拟
Unix System
V风格的打印命令(lp、lpstat等)。随LPRng发行的还有IFHP过滤器,它可以用在队列中,用于自动转换一些数据格式(比如打印ASCⅡ文本
或图像)。

CUPS通用Unix打印系统
CUPS 软件为 Unix/Linux 用户提供了以有效而可靠的方式来管理打印的方法。它生来就支持
IPP(因特网打印协议),IPP协议的四个主要目的是:1、帮助用户寻找为了上可用的打印机。2、
传送打印作业。3、传送打印机状态信息。4、取消打印作业。并有 LPD、SMB(服务器消息块,例如与 Microsoft Windows
连接的打印机)和 JetDirect 接口。CUPS采用的另外一个标准是PPD(PostScript Printer
Definition)文件格式,这是Adobe另外一个用于PostScript打印机的标准。从以上可以看出CUPS打印系统是目前Linux打印系
统中最好的选择,从Red hat Linux
9.0开始它取代了LPRng成为Linux缺省安装的Linux打印系统。Linux支持许多种类的打印机,从老式的针式打印机,到最新的激光打印机,
都可以使用。了解目前Linux 支持什么打印系统非常重要,下面我们看看几个主流Linux发行版本使用的打印系统。CUPS还采用了很多过滤器用于传送数据至打印机的方法。与BSD类的假脱机程序不同的是,这是通过一种更加智能的方式来完成的。下面是在CUPS中可用的部分过滤器:
1.后端过滤器。它可以提供最终数据进行传送的端点。这些过滤器可用于并口、TCP/IP套接字连接、LPD和其它端点的连接。
2.文档转换过滤器。该过滤器是作为CUPS一个标准配置一起发行的。它可以转换图像、ASCⅡ文本、PDF文件和HP-GL/2矢量文档至PostScript。
3.接口过滤器。它可以将文档从PostScript转换至其它过渡的文件格式。

CUPS是跨桌面的,也就是说你可以在GNOME或KDE下安装你的打印机工作。CUPS主要功能:
Print 将文件发送到特定的URI的打印机; Validate 设定打印优先级别
Creat 将文件作为打印作业处理; Cancal 取消打印作业
Pause 暂停打印作业;Resume 恢复打印作业
Purge 清除打印作业


一把打印机的安装
如果不知道或者没有打印机的Linux相关驱动或使用信息,可以到http://www.linuxprinting.org/

查询相关的信息。这个网站会列出CUPS对打印机支持的程度,如Perfectly,mostly等状态。
在Redhat系统下使用
chkconfig -level 2345 cups on
来激活CUPS。

CUPS的配置文件主要是
/etc/cups/cups.conf
通过http://localhost:631/web界面配置CUPS将比较方便。
使用redhat-config-printer-gui或system-config-printer-gui(Fedora Core 4以后)工具配置打印机可以获得如同Windows下添加打印机相似的向导帮助。
关于这些配置工具的具体用法查阅相关的帮助文件,这里就不罗列出来了。

Comments

Popular posts from this blog

Freeware Software Top 300 from winAddons.Com!

RPM Build Tips!

Thinkpad T23使用ACPI电源管理!