一、Linux打印系统发展路线图
在Unix世界里 , PostScript语言是主要用于打印的接口 。所有主要的应用程序都会输出通用的PostScript页面 , 而这些PostScript经过打印系统处理后再被打印出来 。打印在Unix世界的演化中总是围绕着PostScript页面描述语言展开的 。该语言是由Adobe公司开发的 , 它是一个成熟的、用于描述一个文档每一页面内容的程序语言 。如今很多打印机中都有一个嵌入式的PostScript解释器 , 它负责使用PostScript将页面在打印纸上再现出来 。现在 , 所有桌面Linux应用程序都有一个打印选项 , 可以生成PostScript数据来打印整页的文档 。这种方法和其它面向桌面的操作系统有很大的不同 , 大部分Unix系统是提交任务至队列中 , 并且希望它能够正确地打印出来 。但是并没有一种统一的收集打印机信息或工作状态的方法 , 这严重影响了那些需要提供打印能力的Linux应用程序 。在Linux中 , 虽然PostScript是产生打印文档的事实上的标准 , 但打印机本身却并不需要知道PostScript , 因为这需要使用到相对比较昂贵的技术 。
在一般情况下 , 尤其是在低端打印机中 , PostScript数据要被翻译成打印机本地的页面描述语言 。这是通过使用一个特殊的转换过滤器来完成的 。一般而言 , 一个过滤器实际上就是一个特殊的程序 , 它可以处理输入的数据 , 并且输出经过加工的数据 。现在 , Linux打印系统中使用着各种不同的过滤器:转换过滤器、I/O过程器(负责将数据传送至设备)、处理过滤器(转换文档数据) 。打印系统的基础是一个假脱机程序(Spooler) 。它可以管理打印任务队列 , 而一个队列通常和一个打印机相关联 , 并且用户提交的任务都是按照先进先出的原则来处理的 。当一个打印任务被处理时 , 任务中的数据在送达打印机前一般都要通过一定数量的过滤器 。
使用PostScript页面描述语言进行打印的优点是极大的简化的设计 , 不用像Windows系统一样安装各种打印机驱动程序 。但是它的缺点是许多打印机(特别是低端打印机)不能解析PostScript输出 , Linux系统对此的解决方法是从打印机队列调用Ghostscript(http://www.ghostscript.com )软件包支持你的打印机 。要查看Ghostscript在你的Linux发行版本上支持什么打印机列表 , 可以在命令行下键入:
$gs --help
gs命令会列出一份它支持的打印机和输出设备的名单 。gs命令使用-r选项设置打印分辨率 。调整ghostscript的输出结果,假如gs 的输出不能让人满意,还有一些办法::输出的位置及大小 。位置,大小,还有图像在页面上的视觉比例是由ghostscript中的打印机驱动程序所控制的. 如果你发现打印出来太短, 太长或是大了两倍, 你可能会想要看一下驱动程序的原始模组并且调整任何所能想到的参数 。
一代的BSD LPD打印系统 , 这个打印系统源自于伯克利的Unix发行版 , BSD LPD是用于Linux发行版(比如Slackware)的第一个打印系统 。现在仍然有发行版(Debian、Slackware)还会带有这种假脱机打印程序 。BSD打印系统核心的功能仅限于队列任务 。它由一个后台程序(lpd)及一些位于/etc目录下的配置文件组成 , 在这些配置文件中有着队列和属性的一些定义 。在相应的目录下 , 还有一系列基本的用于提交、删除和处理任务使用的命令(lpd、lprm、lpc) 。BSD LPR是BSD打印系统重要一个部分 , 因为它定义了LPD网络协议 , 而该协议是用于提交任务至远程LPD后台程序的 , 并且它允许Unix工作站实现一个打印服务器的功能 。现在 , 所有的网络打印机都支持这个协议 。由于它使用范围非常广泛 , 所有其它打印系统都要求至少可以和其它的LPD后台程序进行会话 。下面是如何在printcap文件中定义一个远程队列的例子 。在这个例子中 , 任务将会被即时传送至远程监控程序的队列之中 , 并且不会在本地机进行处理 。
推荐阅读
- 图 Linux网络环境下如何玩转GMail信箱
- 干海藻菜是裙带菜吗
- 边缘计算是什么意思
- 光遇水之灵在哪个位置
- 变压器辐射能穿透墙吗
- 为什么奶牛身上有个洞
- 云顶之弈排位怎么算分
- 吃西瓜简笔画教程吃西瓜简笔画步骤
- win11黑屏有鼠标
- 乌鸡汤的功效