Linux的中文输出简介


·在 UNIX 世界中,长久以来已不乏排版与打印的工具,例如功能强大的幕后排版系统 TeX/LaTeX,用以预览、显示、以及打印的文件图形化语言 Postscript,以及在自由软件世界中常见的 Postscript解译器 Ghostscript 及其附带的打印机与其它外围装置的驱动程序 .... 等等。
·然而,要让这些排版与打印工具可以处理中文却是一项难题,主要是在于文字的编码方式以及字型方面。就以中文为例,由于在一般的计算机装置 (如打印机) 或计算机软件并不内建数量庞大而且笔画复杂的中文字型,故当我们要做中文输出时,必须要有特别的处理方式。例如我们希望在印一份纯文字的中文文件,我不能直接将它送交纯文字打印机去打印,因为这些打印机多半认不得中文编码,也没有字型可用,故它最多只能将送来的中文编码拆成一个个连续的 ASCII 或 ISO8859-1的编码,再用其内建的 ASCII 或 ISO8859-1 字型印出来,结果就是印出一连串的乱码。
·为了解决此问题,通常当我们要做打印时,不论是印已编排好的文件或纯文字,我们多半要做如下的处理: 辨认出文件内的所有文字,中文字的部分就去找适当的字型,将代表该字的字型 (或说该字的「图案」) 画在该文件内,最后处理完后原本的文件(或文字文件) 就成为一个「图形文件」,最后才将该「图形文件」送印。因此,在很多情况下,印一篇中文的文本文件,其实是印一份内嵌了中文字型的图形档案。图形文件的格式有许多种,但在自由软件的世界中,其最终输出的格式通常是 Postscript。
图形输出格式: Postscript 与 PDF
·Postscript 是早年 Adobe 公司与apple公司所合作开发的一种描述式语言。之所以用 Postscript 做为最终的送印图档格式,主要是因为它有很好的可移植性 (因为它在一般人或程序看来只是纯文字文件,而不是二进制文件),而且其语法有很高的弹性与延展性,使得我们可以轻易将图案缩放而不至于失真。同时, Postscript 也是业界文件输出格式的重要标准,早期有许多学术论文与排版印刷工作的最终输出都是 Postscript,甚至有许多打印机直接就可以读懂 Postscript, 故它们可以直接打印 Postscript 的文件,而不需要额外的驱动程序。
·Ghostscript 软件。它是一个可以读懂 Postscript 语言的解译器,更重要的是它内含许多驱动程序,可以将 Postscript 文件转换成各种形式输出,包括许多打印机的驱动程序,使得这些不懂 Postscript 语言的打印机得以顺利打印文件。除此之外,Ghostscript 还有 X Window 的绘图模块,可以让 ghostview、gv 等程序在 X Window的环境下显示 Postscript 的文件;它还有可以将 Postscript 转换成其它图档格式(jpeg, png, tiff, ....)、甚至可以送交传真的 faxg3 格式 .... 等等 (因此,当我们要用 modem 传真文件时,我们可以先将该文件的 Postscript 档案准备好,经由Ghostscript 程序转换后送出)。故 Ghostscript 可以说是一个功能相当强大的Postscript 转换引擎。
·由于 Postscript 只是一种图档格式而已,我们很难直接编写、修改 Postscript 的文件,也无法轻易在 Postscript 文件中搜寻文字,更难以用鼠标剪贴的方式将 Postscript 文件中的文字剪贴到别的窗口中。为了弥补这些缺点,故近年来 Adobe 公司又另外发展了一套称为 PDF 的文件。它同样包含了Postscript 所有的优点 (然而它是个二进制文件,而非纯文字文件,这一点与 Postscript格式不同),也弥补了 Postscript 的不足,其中包括:
1. 由于 PDF 的文件有压缩过之故,使得它的大小比起相同的 Postscript文件要小得多。
2. 在 PDF 浏览器 (如 xpdf) 中显示 PDF 文件时,速度比起用 Postscript浏览器 (如 gv) 来显示 Postscript 要加不少。
3. 用 PDF 编辑器可以很容易地直接修改 PDF 文件,也可以直接将 PDF文件中的文字直接剪贴到别的窗口中。
4. PDF 文件还支持索引hyper-reference、及 bookmark (目录) 的功能。
· 由于这些优点,故在这一两年来它的普级率迅速上升,许多原本采用 Postscript 的学术文件也逐渐改采 PDF 了,连近年来新版的 Ghostscript 软件也能读懂 PDF 的格式。 然而在自由软件世界中,现阶段 PDF 仍然不是最终输出的格式,特别是在印表方面,很多时候仍然要先转换成 Postscript 之后才能送印,而许多绘图程序的打印输出也多还是 Postscript 而非 PDF,我想还需要一段时间才会有完整的支持。

相关内容