10. Ghostscript。

Ghostscript 对于自由软件驱动的打印来说,是一个极其重要的程序。Unix 下的大多数打印软件生成 PostScript,这在打印机上通常是一个 100 美元的选项。然而,Ghostscript 是免费的,并且可以从 PostScript 生成您的打印机语言。

Ghostscript 有几种形式。Ghostscript 的商业版本,称为 Aladdin Ghostscript,可以免费用于个人用途,但不得由商业实体分发。它通常比免费的 Ghostscript 领先一年左右;例如,目前,它支持许多较旧的 Ghostscript 不支持的彩色喷墨打印机,并且具有更好的 PDF 支持。

Ghostscript 的主要免费版本是 GNU Ghostscript,它只是 Aladdin Ghostscript 的旧版本。这种有点尴尬的安排使 Aladdin 成为一个完全自筹资金的自由软件项目;前沿版本由 L Peter 和少数员工完成,并授权给硬件和软件供应商用于商业产品。不幸的是,虽然这个方案为 L Peter 多年来在 Ghostscript 上的持续工作提供了支持,但也抑制了更广泛的自由软件社区的参与。特别是驱动程序作者,认为这种安排很糟糕。L Peter 的退休计划要求社区更多地参与该项目,因此他正在考虑更改许可证,并建立了一个 SourceForge 项目。

Ghostscript 的第三个版本是 ESP Ghostscript,由 Easy Software Products(CUPS 的作者)在爱普生的合同下维护。ESP Ghostscript 是 gimp-print 驱动程序项目的驱动程序和 GNU Ghostscript 的组合,加上各种可用性补丁。这个版本尚未完全展开,但它将很快可用,并有望简化 Gimp-print 驱动打印机所有者的生活。

无论您对 gs 执行任何操作,请务必使用禁用文件访问的选项运行它(-dSAFER)。PostScript 是一种功能齐全的语言,一个糟糕的 PostScript 程序可能会给您带来很大的麻烦。

说到 PDF,Adobe 的可移植文档格式(至少到 1.3 版本)实际上只是压缩文件中有组织的 PostScript。Ghostscript 可以像处理 PostScript 一样处理 PDF 输入。因此,您可以成为您所在街区第一个拥有支持 PDF 的打印机的人。

10.1. 调用 Ghostscript

通常,Ghostscript 将由您选择的任何过滤器运行(如果您的供应商没有提供任何适合您的过滤器,我建议使用 Foomatic),但出于调试目的,直接运行它通常很方便。

gs -help 将提供选项和可用驱动程序的简要列表(请注意,此列表是编译到其中的驱动程序列表,而不是所有可用驱动程序的总列表)。

您可能会出于测试目的运行 gs,例如: `gs <options> -q -dSAFER -sOutputFile=/dev/lp1 test.ps`。

10.2. Ghostscript 输出调整

如果 Ghostscript 的输出不令人满意,可以做很多事情(实际上,您可以做任何您想做的事情,因为您有源代码)。

其中一些选项以及其他选项在 Ghostscript 用户指南(文件Use.htm在 Ghostscript 发行版中;可能安装在/usr/doc/usr/share/doc在您的系统上)都是过滤器系统中驱动程序选项的绝佳选择。

10.2.1. 输出位置和大小

页面上图像的位置、大小和纵横比由 ghostscript 中特定于打印机的驱动程序控制。如果您发现您的页面输出被压缩得太短、太长或太大两倍,您可能需要查看驱动程序的源模块并调整任何突出的参数。不幸的是,每个驱动程序都不同,所以我真的无法告诉您要调整什么,但它们中的大多数都有相当好的注释。

10.2.2. Gamma、点大小等

大多数非激光打印机都存在点相当大的问题。这导致图片输出太暗。如果您在使用其他无法调整的驱动程序时遇到此问题,您可以使用自己的传输函数。只需在 ghostscript lib-dir 中创建以下文件,并在实际文件之前将其名称添加到 gs 调用中。您可能需要调整实际值以适合您的打印机。较低的值会导致更亮的打印效果。特别是如果您的驱动程序使用 Floyd-Steinberg 算法来栅格化颜色,较低的值(0.2 - 0.15)可能是个不错的选择。

%!
%transfer functions for cyan magenta yellow black
{0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer


也可以通过调整这些值来修复具有某种颜色故障的打印机。如果您执行此类操作,我建议使用文件colorcir.ps,它随 ghostscript 一起提供(在examples/子目录中),作为测试页。

对于许多较新的彩色喷墨打印机驱动程序,有命令行选项或不同的 upp 驱动程序文件,它们实现了 gamma 和其他更改,以使打印机适应不同的纸张类型。在尝试使用 Postscript 修复问题之前,您应该研究一下这一点。

10.2.3. Ghostscript 中的彩色打印

Ghostscript 的默认颜色抖动针对低分辨率设备进行了优化。它将相当粗糙地进行抖动,以尝试产生 60ppi 的输出(不是 dpi,ppi - 抖动后获得的“表观”每英寸彩色像素)。这在现代彩色打印机上产生相当差的输出;特别是使用照片纸的喷墨打印机,能够实现更精细的 ppi 设置。

要调整此设置,请使用 Ghostscript 选项-dDITHERPPI=x,其中x是要使用的值。这可能对所有驱动程序都有效,也可能无效;许多较新的驱动程序(例如,Epson Stylus stp 驱动程序)实现了它们自己的抖动,并且不注意此设置。某些驱动程序可以使用常规 Ghostscript 或特定于驱动程序的抖动(例如,Canon Bubblejet bjc600 驱动程序)。

实际上,Ghostscript 的抖动相当简陋。现代打印机上良好输出所需的许多东西在 Ghostscript 核心中根本不可用。各种旨在解决这种情况的项目——自由软件世界确实拥有随时可用的软件——都受到 Ghostscript 的许可情况和由此产生的“大教堂”开发风格的阻碍。然而,从 2000 年开源打印峰会开始,所有必要的人都在交谈,因此您可以期望这种情况很快会得到改善。