Linux CUPS 打印系统原理
Linux 打印系统原理是指在 Linux 操作系统中实现打印功能的机理。 Linux 打印系统的发展是基于 PostScript 页面描述语言的,这是一种成熟的、用于描述文档每一页内容的程序语言。它是一种与设备无关的打印机语言,可以将不同的应用软件数据转换成 PostScript 格式,然后由 PostScript 驱动程序将其发送到打印机。
Linux 打印系统的基础是一个假脱机程序(Spooler),它可以管理打印任务队列,并将任务中的数据通过一定数量的过滤器传送到打印机。在 Linux 中,PostScript 是产生打印文档的事实上的标准,但打印机本身并不需要知道 PostScript,因为这需要使用到相对昂贵的技术。因此,PostScript 数据需要被翻译成打印机本地的页面描述语言,这是通过使用一个特殊的转换过滤器来完成的。
Linux 打印系统中使用着各种不同的过滤器,如转换过滤器、I/O 过程器、处理过滤器等。在 Linux 下采用假脱机(spooling)打印方法,当用户需要打印一个文件时,该文件并不直接送到打印机,而是送到 spool 目录下,然后由一个负责打印的后台进程把这些数据送入打印机。
Linux 系统除了可以在本地打印机上打印外,还可以通过网络打印机远程打印。Linux 系统上的打印原理如下:各种类型的文档经由一个(或一些)转换程序转换成用户正在使用的打印机可以认识的格式,即用各种类型的打印机语言描述的流,系统将这个流直接发送到打印机端口,由打印机对其进行解释并形成硬拷贝。
CUPS(Common Unix Printing System)是一种通用的 Unix 打印系统,提供了一个统一的打印接口,允许应用程序来访问打印机。CUPS 使用 Ghostscript 作为打印过滤器,负责将 PostScript 文件转换成打印机语言。CUPS 也提供了一个 Spooler 机制,用于管理打印任务队列和打印机状态。
在 Linux 打印流程中,应用程序产生输出并以管道的方式传送给 lpr 或者直接应用 lpr 打印一个文件。lpr 与打印机后台服务程序通过网络进行连接并进行通信,传送相应的打印数据和打印选项。打印机后台服务程序将在相应的 spooler 目录存储打印信息,在输出设备可以利用的情况下将打印任务送给打印设备。
Linux 打印系统原理基于 PostScript 语言和假脱机程序,使用各种过滤器和 Ghostscript 转换程序将文档转换成打印机语言,并通过 CUPS 提供的统一打印接口和 Spooler 机制来管理打印任务队列和打印机状态。