📄 printing-howto.txt
字号:
The Linux Printing HOWTO 中文版 作者 : Grant Taylor [1]<gtaylor+pht@picante.com>译者 : 任恒宇 [2]<henryjen@acer.net> v3.17, 6 June 1998 翻译日期 : 15 December 1998 _________________________________________________________________ 这一篇是 Linux Printing HOWTO 的中译本, 内容包括了如何在 Linux 之下产 生, 预览,列印及传真任何文件的相关资讯 (基本上亦可适用於其他的 Unices). _________________________________________________________________ 1. 简介 * 1.1 历史 * 1.2 版权声明 2. 如何列印3. 核心印表机装置 * 3.1 lp 装置 * 3.2 parport 装置 (核心版本 >= 2.1.33) * 3.3 序列装置(Serial devices) 4. 支援的印表机 * 4.1 特定印表机的注意事项 5. 印表连线作业软体(spooling software) 呢?6. 基本运作方式7. 基本系统设定 * 7.1 传统的 lpd 设定 * 7.2 档案权限 8. 取得列印软体9. 厂商的解决方案 * 9.1 Red Hat * 9.2 其它的发行版本(Other Distributions) 10. Ghostscript. * 10.1 启动 ghostscript * 10.2 调整 ghostscript 的输出结果 11. 如何列印到网路印表机 * 11.1 列印至 Unix/lpd * 11.2 列印到 Win95, WinNT, LanManager, 或 Samba 上的印表机 * 11.3 列印到 NetWare 上的印表机 * 11.4 列印到 EtherTalk (Apple) 上的印表机 * 11.5 列印到 HP 或其它的以太网路(ethernet) 印表机 * 11.6 替远端印表机执行 if * 11.7 从 Windows 列印 * 11.8 从 Apple 列印 * 11.9 从 Netware 列印 12. Windows 专用印表机 * 12.1 Ghostscript Windows 导向器(redirector) * 12.2 pbm2ppa 程式 13. 如何列印到传真机 * 13.1 使用传真数据机(faxmodem) * 13.2 使用远端列印服务 14. 如何产生值得列印的东西 * 14.1 标示语言(Markup languages) * 14.2 所见即所得(WYSIWYG) 的文书处理器 15. 在萤幕上预览可列印的东西 * 15.1 PostScript * 15.2 TeX dvi * 15.3 Adobe PDF 16. 在 lpd 下使用序列式印表机 * 16.1 设定 printcap * 16.2 会掉字的旧型序列式印表机 17. 感谢 _________________________________________________________________ 1. 简介 这份 Printing HOWTO 应该包括了能帮助你在 Linux 平台上架设列印服务的所有 讯息. 这不像在 Microsoft 或 Apple 环境下用滑鼠点选那麽容易, 但一定比管 理一个大型的区域网路来得轻松. 这份文件的编排方式是希望能让大部份的使用者只须阅读前半段. 较难理解的个 案情况则摆在後半段, 而且你可以很容易地从目录中找到. 所以大部份人可能只 须看到第九或十节就可以了. 因为 3.x 版的文件重新写过, 前面版本中的许多内容已经拿掉了. 这是故意的, 因为前版的 HOWTOs 长达 60 多页, 而且编排方式并不是很理想. 如果你在这份 文件中找不到所需的答案, 你可以 a) 参阅位於 [3]Printing HOWTO Home Page 的旧版文件. 也可以 b) 告诉我缺少了什麽部份. 你可以在 [4]Printing HOWTO Home Page 找到这份文件的最新版本; 当然你也可 以在 SunSite (sunsite.unc.edu) 和附近的 LDP mirror 站找到. 1.1 历史 这是第三代的 Printing HOWTO, 也就是第三次的完全改版, 以年份来看: 1. 我在 1992 年因为看到在 comp.os.linux 有很多关於列印的问题, 便写下并 发表了 printing-howto. 比 HOWTO 计画还早几个月, 同时也是第一份称为 `howto' 的常见问答集. 这一版是纯文字格式. 2. 加入了 HOWTO 计画後, Printing-HOWTO 和由 Brian McCauley <B.A.McCauley@bham.ac.uk> 所写的 Lpd FAQ 合并; 我们继续合写 PHT 差 不多两年. 有些地方则纳入了 Karl Auer <Karl.Auer@anu.edu.au> 的作 品. 这一版的 PHT 是以 TeXinfo 写成, 也提供了 PS, HTML, Ascii 和 Info 的版本. 3. 在 PHT 经过一年多的时间逐渐成熟以及一次尝试移转给别人维护的失败经验 後, 产生了这份重新改版. 这一版的 PHT 是以 Linuxdoc-SGML (现在称为 Sgml-tools 套件)所 写成的. 1.2 版权声明 这份文件的版权为 Grant Taylor 所有 (c) 1997. 请广为复制及散布, 但请别修 改内文或省略作者的名字. This document is Copyright (c) 1997 by Grant Taylor. Please copy and distribute it widely, but do not modify the text or omit my name. 2. 如何列印 如果你或你的系统管理者或厂商已经设定好 lpd 的话, 你所需要做的便只是学习 如何使用 lpr 指令而已. [5]Printing Usage HOWTO 包含了这部份的资讯, 还有 一些你可能应该要知道的列印伫列处理指令. 如果你有一个全新系统或者新的印表机, 那你就必须在开始列印前先设定好列印 服务. 如果是这样, 请继续看下去! 3. 核心印表机装置3.1 lp 装置 假如你已经编译或载入了 lp 装置(cat /proc/devices 的结果可以看到 lp), Linux 核心 (<=2.1.32) 会提供一个或多个的 /dev/lp0, /dev/lp1, /dev/lp2 装置档案. 这些档案不是随意指定的, 相反的, 每一个档案皆对应到一个特定的 I/O 位址. 这表示你的第一部印表机可能是 lp0 或 lp1, 完全视你的硬体情况而 定. 两个都试试看吧! 有些使用者提到如果使用较旧的单向印表机连接线, 就无法侦测到他们的双向印 表机连接埠. 确定你使用了正确的连接线. 一个印表机埠不能同时载入 plip 和 lp 的驱动程式, 如果你用的是 2.x 或是 1.3.x 版以後的核心, 你可以用手动或核心的方式选择载入不同的驱动程式. 只 要小心的设定中断等设定, 你应该可以在一个埠上执行 plip, 而在另一个埠上载 入 lp 的驱动程式. 曾经有人修改驱动程式而成功; 我希望能早日听到有人以一 个简单的指令完成相同的事情. 有一个小程式 [6]tunelp, 如果你是 root, 可以用来设定 Linux lp 装置使用的 中断 (interrupt), 轮询速率(polling rate) 和其它的项目. 若是 1.3.x 版以後的核心编译时包括了 lp 驱动程式, 核心接受 lp= 参数设定 中断及 IO 位址: 若将 lp 驱动程式编译入核心, 你可以用 LILO/LOADLIN 的命令列来指定使用的IO 位址及中断.语法: lp=port0[,irq0[,port1[,irq1[,port2[,irq2]]]]]□例: lp=0x378,0 或 lp=0x278,5,0x378,7 **要注意的是假如你使用这个功能, 你必须指定 *所有* 要用的印表机埠,系统不提供预设值. 你可以用 lp=0 来停用内建的驱动程式. 若是在第二版或是晚期 1.3.x 版的核心以载入模组的方式执行, 可以在 insmod 指令的命令列(或是在 /etc/conf.modules 来模拟核心模式) 以平常的语法来指 定 IO 位址和中断. 参数为 io=port0,port1,port2 和 irq=irq0,irq1,irq2. 请 参考 [7]insmod 的线上手□以取得更进一步的资讯. **给那些当需要时却总是找不到标准印表机埠位址的人, 位址便如同第二个□例 中所示, 另一个印表机埠 (lp0) 则在 0x3bc. 我不知道一般所用的中断是那一 个. Linux 并列埠驱动程式的原始码在 /usr/src/linux/drivers/char/lp.c. 3.2 parport 装置 (核心版本 >= 2.1.33) 从 2.1.33 版本後的核心(2.0.30 版核心可取得修正档), lp 装置成为新增加的 parport 装置的客户端. 增加 parport 装置解决了许多困扰旧有 lp 装置驱动程 式的问题 - 像是可以和其它的驱动程式共用一个连接埠, 可以动态指定可用的并 列埠而不须将装置档对应到固定的 I/O 位址等等. parport 装置的出现使得很多新的并列埠设备, 像是 Zip 磁碟机, 可携式 CD-ROM 和磁碟机等等, 的驱动程式得以出现. 其中一些也有提供 2.0.x 核心可 用的版本, 到网路上找找看吧. 当我使用了 parport 驱动程式後, 我会更完整地探讨它. 目前你可以看一下核心 原始档中的 [8]Documentation/parport.txt. 或者你也可以到 [9]parport web site 看看. 3.3 序列装置(Serial devices) 序列装置在 Linux 中通常有个像 /dev/ttyS1 这类的名称. [10]stty 这个工具 程式可以让你查看及设定序列埠. [11]setserial 可以让你调整更多的属性及设 定使用非标准的 IRQ 及 I/O 位址的序列埠. [12]Serial-HOWTO 会对 Linux 下 的序列埠做更进一步的探讨. 如果你使用的是有流量控制的慢速序列印表机, 可能会发现有些报表被截断. 这 是因为系统预定在程式关闭序列埠 30 秒後, 所有在缓冲区内尚未传送的字元都 会被清除. 缓冲区内可容纳最多 4096 个字元, 假使你的印表机使用流量控制, 而且慢到无法在程式关闭序列埠後 30 秒内印出缓冲区内的所有字元, 那麽缓冲 区内最後的内容就会遗失. 如果 cat file > /dev/ttyS2 这个指令可以完整印出 较小的档案, 但会截断较长的档案时, 你可能就是遇到了这种情况. 30 秒的周期可以用 setserial (2.12 及以後的版本) 指令的 "closing_wait" 选项来调整. 一台机器通常是在 rc.serial 开机档中呼叫 setserial 来初始化 序列埠. 可以在这修改连接印表机的序列埠的 closing_wait 选项. 4. 支援的印表机 Linux 核心大致上支援所有能够接到序列或并列埠的印表机, 但还是有些要注意 的事项, 和一些虽然能与 Linux 沟通(就电子讯号而言) 却无法使用的印表机. 与 Linux 不相容的主要是那些靠 "Windows 列印系统" 的印表机. (通常会模糊 地标示著 "for Windows" 或是称为 "GDI" 印表机). Linux 不能使用这种印表 机. 这种印表机完全没有 "智慧", 它们必须依赖电脑的 CPU 来处理传统上由印 表机的 CPU 所做的工作. 不幸的是, 这些工作只能靠厂商所提供的驱动程式来完 成, 而且通常只有 Windows 的版本. 所以最好别购买这种印表机给 Linux 使 用. (万一你已经有这种印表机, 仍然有变通之道, 只不过相当的笨拙, 所以我绝 对不会使用这种方式. 想更深入的□解 Windows-only 印表机请看第 12 节) 那些印表机一定可以用呢? 最好的选择就是买具备 PostScript 支援的印表机. 几乎所有的 Unix 软体都以 PostScript 来产生报表, 所以很明显的, 如果能有 一部直接支援 PostScript 的印表机的话是再好不过了! 不幸的是除了雷射印表 机外, 其它种类的印表机几乎都不支援 PostScript, 要不然就是相当昂贵的选购 配备. 如果预算不允许买一部 PostScript 印表机, 你可以买任何 Ghostscript 支援的 印表机. GhostScript 是一个免费的 PostScript 解译器, 可以用来模拟实际的 印表机支援. [13]Ghostscript 的首页 中有支援的印表机清单, 以及新的和开发 中的驱动程式的最新消息. 也请你将成功或失败的经验如同网页中所要求的告诉 他们以帮忙改进这个网页. Adobe 公司有一种新的印表机语言叫做 "PrintGear". 我想它是具有 PostScript 观念但与其不相容的一种大幅简化的二进位语言. 而我也没听说 ghostscript 支援它. 但是有些 PrintGear 印表机似乎也支援其它语言如 PCL , 而这种印表机便可以在 Linux 下使用. 4.1 特定印表机的注意事项 这一小节永远也不会完整. 但是我放在这□的资料应该是正确的: Canon BJ-10ex 有人建议 Canon 在 Epson LQ 模式下运作比较好. (可以用 dip switch 设定). 在 Canon 模式下的列印结果似乎会时好时坏或是完全失败. 但另 一方面, Ghostscript 很明确地支援许多 Canon 的印表机, 所以这很可 能只是个特例. Lexmark Lexmark (原来是 IBM 的一份子) 生产很多种印表机. 其中有一部份是 Windows 专用的. + Color Jetprinter 1000 + Color Jetprinter 1020 (non Business Edition) + Color Jetprinter 2030 + Color Jetprinter 2050 + Color Jetprinter 2070 + Color Jetprinter 7000 + Color Jetprinter 7200 + Winwriter 100 + Winwriter 150c + Winwriter 200 5. 印表连线作业软体(spooling software) 呢? 直到最近, Linux 的使用者的选择很简单 - 每个人跑的都是古老的从 BSD 的 Net-2 程式码移过来的 lpd. 即使在今天, 大部份厂商仍以这个软体出货. 但是
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -