驯服打印机和打印的恐怖,第 3 部分
大家好,欢迎来到系统管理员专栏,又一个星期的打印魔法和解密。
在开始本周的技巧、诀窍以及各种“这是你如何做”的内容之前,我想告诉你们昨天发生在我身上的一件美好的事情。不,是另一件事。它与颜色有关。不久前,我买了一台漂亮闪亮的新 HP DeskJet 710C 彩色打印机。当然,我打破了第一条规则,“你应当检查硬件兼容性列表”。事实证明,这台打印机是所谓的“Winprinters”之一,这是 Windows 专用系统的邪恶发明。有点像 Winmodem,只不过这是一个打印机。
无论如何,我的 DeskJet 710C 使用了 HP 称之为 PPA 或打印性能架构的技术。这是一个封闭协议,HP 有权决定这样做,但这给我的选择带来了一些困难。我们办公室确实有一台(现在仍然有)Windows 95 PC,它可以使用这台打印机。颜色很漂亮,而且我们至少有一个人可以使用它。转向互联网,我发现有一个打印机驱动程序/过滤器正处于早期开发阶段(它可以打印黑白)。因此,怀着狂野的乐观主义和对 Linux 开发人员坚定不移的信念,我决定保留这台打印机。
时间流逝... Tim Norman(httptech 网页上的名字)和 Linux PPA 开发团队(sourceforge 网站上列出了 6 位开发人员)发挥了他们的魔法,最终,我们有了适用于 HP 710、720、820 和 1000 系列彩色打印机的彩色驱动程序。他们确实警告说代码处于测试阶段(读作 不稳定),但在试用之后,我认为他们最终让我的 Linux 系统能够利用这台原本很棒的打印机,做得非常出色。最新的源代码和开发信息可以在 sourceforge.net 网站上找到。
http://sourceforge.net/project/?group_id=1322
原始主页位于 http://www.httptech.com/ppa/。
在重复这个重大警告之前,我还应该告诉你,你可以从 sourceforge 网站下载 Red Hat 和 Mandrake RPM 以及过滤器。你还可以获取 pnm2ppa(驱动程序的实际名称)的当前源代码,并获取最新的文档。现在,再次警告...虽然我对这个版本非常满意,而且它似乎对我来说运行良好,但代码是 alpha 版本的,应该这样对待。
关于 PPA 过滤器的最后一件事:他们计划支持 ghostscript,但这还需要一段时间。说到 ghostscript(可以理解为“过渡”吗?):上周,我谈到了创建一个 ghostscript 过滤器,以便可以将生成 postscript 的程序与非 postscript 打印机一起使用。在 Linux 或 UNIX 世界中,这涉及到很多程序。无论如何,这是我对 ghostscript 输出过滤器的快速提醒,用于将 postscript 转换为我的 LaserJet 5L 打印机。我将此文件保存为 /usr/local/bin/psfilter,并使用 chmod 755 /usr/local/bin/psfilter 使其可执行。
#!/bin/bash # # This is a ghostscript filter so that our HP LJ5 will print postscript files # echo -ne \\033&k2G gs -q -dNOPAUSE -sDEVICE=ljet4 -r300 -sPAPERSIZE=letter -sOutputFile=- -
现在,我还有一个使用该输出过滤器的打印机定义。
pshpljet: :sd=/var/spool/lpd/pshpljet: :mx#0: :sh: :lp=/dev/lp0: :of=/usr/local/bin/psfilter:
现在我们可以将 postscript 打印到我们的 HP LaserJet(或 Epson,就此而言),我们可以做一些非常酷的 postscript 事情。这里只是其中之一。
假设你有一个两页的文档(程序列表,或一系列糟糕但有趣的笑话),而你真的只希望它占用一页(笑话没有那么好笑)。这就是 mpage 命令发挥作用的地方。我们现在将打印此文档,以便将两页内容放在一页上。输出将被旋转,因此实际上会以纵向方向输出。
mpage -2 funnyjokes.txt | lpr -Ppshpljet
我的两页内容出现在一页上,两页周围都有一条细线。让我们让它更精美一点,好吗?看看下一个命令,看看它会生成什么样的输出。
mpage -2 -B-5r-5l-3t-3b3 -M50l50r50t50b -H wright.txt | lpr -Plptest
这一切意味着什么?顺便说一句,-2 可以是 -4,以便每张物理页面容纳 4 页逻辑页面。为了清楚地说明我仓促选择的术语,我使用“逻辑”和“物理”这两个术语来区分打印机输出与物理的“拿在手中”的页面。你甚至可以执行 -8,但这可能有点傻了。-B-5r-5l-3t-3b3 表示应该在框周围绘制一条粗线(3 磅)。这实际上是该行末尾的最后一个 3。-5r- 5l-3t-3b 表示我希望顶部和底部有三行边距,左右有五个字符的边距。-M 行使用类似的格式。在我的虚拟页面周围给我一个 50 磅的边距。记住,在这个例子中,我们在一张物理页面上有两页逻辑页面。最后,-H 表示我希望每页都有一个页眉。页眉的右侧是日期,中间是文件名,右侧是页码。
那么,你会在哪里使用它呢?首先想到的一个地方(在单行笑话之后)是你的程序的源代码。这是一种生成紧凑程序列表的好方法,而无需将它们导入到文字处理器中。我应该指出,有一种非 postscript 的方法可以创建简单的编号页。你所要做的就是使用 pr 命令。用纯文本打印机定义尝试一下
pr +2 -h "Secret Kernel Enhancements" -o 5 ftl_travel.c | lpr -Ptextonly
pr 是一个旨在格式化文本以进行打印的命令。上面的行表示获取文件 ftl_travel.c,从第 2 页开始打印(这是 +2),添加 5 个空格的左侧缩进(-o 5),并在每页上打印页眉“Secret Kernel Enhancements”(-h 后跟一个字符串)。如果你没有指定不同的页眉名称,你将得到文件名本身,在本例中是 ftl_travel.c。哦,是的;它实际上会从第 2 页开始编号。
在我们结束之前,我想谈谈 StarOffice。 许多人写信问我是否可以添加一些内容来帮助他们进行 StarOffice 打印。好吧,我有什么理由拒绝呢?
有几种方法可以进入 StarOffice 打印机对话框。如果你安装了 KDE,StarOffice 在你的 K 菜单的“个人”部分弹出一组漂亮的小图标。这些是 Setup、SPAdmin 和 StarOffice。对于打印机配置,请单击 SPAdmin 菜单项。当你启动软件包时,你也可以从 StarOffice 菜单中选择打印机配置。
请注意,当打印机对话框出现时,你可能会看到一些内容,例如 Generic Printer on queue default_queue (lpr)。下面是你可以在其中添加的打印机列表——所有这些都是 postscript 打印机。我的打印机不会在该列表中显示,因为我有一台 LaserJet 5L。但是,我确实定义了一个队列,用于将 postscript 打印到我的 LaserJet(pshpljet)。因此,我突出显示“Generic Printer”,然后单击右侧的“Connect”按钮。这将弹出另一个窗口,其中包含“Existing queues”列表,其中一个是我的 generic_queue (lpr),另一个是 fax_queue=(FAX)。我们今天不谈论传真,但我会告诉你你需要什么才能使该打印机工作。单击 default_queue 并将其更改为如下所示
my_printer_queue=lpr -Pmy_ptrname
在我的情况下,它实际上看起来像这样
Network_LaserJet=lpr-Ppshpljet
现在,单击 Test 按钮(你将被告知这将保存你的配置)。你应该得到一份漂亮的打印输出,上面有一个螺旋图案,似乎在说,“你变得困倦...”。此时,你可以将其指定为你的默认打印机,然后单击 Close。正如我之前提到的,也可以从 StarOffice 本身运行此对话框,但对于真正勇敢的人来说,还有另一种方法。那就是编辑你主目录中的 .Xpdefaults 文件。该文件非常有趣,尤其是查看文件的 [ports] 部分。在我的文件中,default queue 有一个条目,如下所示
default_queue=lpr
如果你只有一台打算与 StarOffice 一起使用的打印机,你可以简单地像我一样更改此行。
default_queue=lpr -Ppshpljet
当然,你可以在这里替换你自己的队列名称。现在,你所需要做的就是重启 StarOffice。
就这样。下次我们见面时,我想最后看一下过滤器:Red Hat 过滤器、magic 过滤器、apsfilters 等等。过滤器,到处都是过滤器,但没有纸可以打印了。在那之前,“轻装打印,随身携带大容量墨粉盒。”
电子邮件: ljeditors@ssc.com