在 AIX 中,为打印提供了大量的配置和设置的选项。根据使用的打印机,AIX 5.3 可以控制最终打印输出的格式和特征。
打印机不必与系统控制台处于相同的区域,这种情况下可能要求将打印作业通过网络发送到远程系统。
当然,也可以直接将打印机连接到本地系统上。
为了以最高效率处理打印作业,AIX 5.3 系统将每个作业都放置在队列中等待打印机处理。
系统可以保存队列中一个或几个文件的输出。当打印完队列中的第一个文件并产生输出后,系统将会处理队列中的下一个作业。
这个过程会连续地进行,直到队列中的每个作业都被打印完成。
以下列出了打印中经常使用的打印术语定义
本章将介绍格式转换程序过滤器和打印假脱机程序的概念
格式转换程序过滤器
格式转换程序过滤器能够根据输入的参数转换文件的打印格式或者不修改地传递它。
尽管过滤器可以无修改地传递输入文件,但它仍然在打印输入文件之前发送打印机命令来初始化打印机,并在打印完成之后恢复打印机。
格式转换程序过滤器由以下各组件组成:
与设备无关的格式转换程序驱动程序
与设备相关的格式转换程序
每种类型(或类型组)的输入数据都会有一个格式转换程序。比如,对所有支持的IBM Proprinter就有一个格式转换程序。
通过管道调用,将向格式转换程序驱动程序传递要驱动的格式转换程序的名称。格式转换程序驱动程序动态地装入、链接
格式转换程序并调用格式转换程序的setup函数,该函数指示应该是请求数据格式转换或是进行数据传递。在格式转换程序
的setup函数完成了修改或传递的输入文件之后,它会返回到格式转换程序驱动程序。然后,格式转换程序驱动程序开始
调用initialize函数,该函数则输出用于启动打印机的打印机命令字符串。
格式转换程序驱动程序接着调用一次passthru函数,或者根据setup函数的返回码对打印文件的每一行调用lineout
函数。如果调用了lineout函数,则格式转换程序驱动程序实现全部的垂直间距,或者是自动的(换页,顶部和底部页边距),
或者是通过lineout函数完成(行间距,垂直跳格)。在处理完成后,格式转换程序驱动程序将调用restore函数。
restore函数会输出一个打印机命令字符串,用以将打印机恢复到其缺省状态,该缺省状态是由数据库的属性值定义的。
打印假脱机程序
它是一个通用假脱机函数,可用于让各种类型的作业进行排队,包括使打印作业排队等候打印机处理。
假脱机程序通常不会区分排入队列的作业的类型。系统管理员根据为队列指定的假脱机程序的后端程序来定义假脱机程序队列。
例如,如果假脱机程序后端程序是piobe命令(打印机 I/O 后端),则队列是打印队列。
同样,如果假脱机程序后端程序是一个编译器,则队列是用于编译作业的。
假脱机程序的qdaemon进程从假脱机程序队列中选择作业后,它通过调用在定义队列时由系统管理员指定的后端程序来运行该作业。
不是所有的远程打印请求都能在网络上得到支持,有时,可能必须一次提交一个文件作业,或者是先连接各个文件,然后再把它们作为一个打印作业提交。
最主要的假脱机程序命令是enq命令。它尽管可以直接调用该命令使打印作业入队列,但还是定义了三个用于提交打印作业的前端命令:
lp、lpr 和 qprt 命令。
由这些命令中的一个命令发出的打印请求首先传递到enq程序,然后该程序将相关文件的信息放置在队列中,等待qdaemon的处理。
队列是/var/spool/lpd/qdir目录。
如果作业不是一个文件(将命令输出通过管道传递至enq),则需要在包含了要打印数据的/var/spool/qdaemon中创建一个真正的文件。
/var/spool/lpd/qdir文件中的信息会指向/var/spool/qdaemon中的此文件。
下一章节中将介绍在打印术语中关于打印机后端,打印机/绘图仪设备以及qdaemon后台进程的概念