Next Previous Contents

6. 中文列印

这一节教你怎么列印中文文件。但我不会教你如何设定印表机,你必须自行设定妥当。 这一节介绍的工具都是将文件转换成 PostScript 格式,因此你还要让你的印表机能列印 PostScript 文档。如果你的印表机不直接支持 PostScript, 你可以安装 ghostscript. 请参考 Printing HOWTO 的说明。

6.1 cnprint

cnprint 是一个将中文文章转换为 PostScript 文档以供列印的工具。使用上就和标准的列印指令一样。它同时支持 GB, HZ 与 BIG5 编码。

何处取得

你可在 ftp://ftp.ifcss.org/pub/software/unix/print 找到 cnprint280.tar.gz

安装 cnprint

cnprint280.tar.gz 只包含了五个文档

# ls
cnprint.1          cnprint.cmd        cnprint280.README
cnprint.c          cnprint.help
用下法编译
# gcc cnprint.c -o cnprint
# mv cnprint /usr/local/bin
# mv cnprint.1 /usr/local/man/man1

安装 HBF 字型

HBF 字型包括了标头档与字型图档: .hbf 是描述字型的标头档,这是一个文字档,里面记载了它的字型图档名称。 两种文档你都必须安装。你可在 ftp://ftp.ifcss.org/pub/software/fonts/ 找到 HBF 字型。

例如你想使用 ccfs24.hbf, 一种仿宋简体字型,你必须取得这三个文档: ccfs24.hbf, cclib.n24ccsym.24。 在 ifcss 的字型目录下的 00index.txt 列出了所有 HBF 字型的文档名称。

建一个目录专门来放 HBF 字型,例如 /usr/local/lib/chinese/HBF/。将你取回来的 HBF 标头档与字型图档都放到这个目录下。 然后在环境变数中指定 HBF 字型的完整目录。

# export HBFPATH="/usr/local/lib/chinese/HBF/"

文档 cnprint.cmd 中包含了 cnprint 的一些预设值。 你必须修改它,让它指向你安装的 HBF 字型。然后将它放到 $HBFPATH

# cp cnprint.cmd $HBFPATH
现在你可用 ``cnprint -w FILENAME'' 将中文文章转换为 PostScript 文档。详细的用法请参考 man cnprint.

编码转换

cnprint 2.80 还增加了许多特异功能,例如,各种编码格式的转换,BIG5 <=> GB <=> HZ. 不过 BIG5 <=> GB 必须另外安装转换表格,这个表格可以从下面地点取得:

ftp://ftp.ifcss.org/pub/software/unix/convert/hc.tab
取回后放到 HBF 字型目录下,然后修改 cnprint.cmd, 加上
DEFAULT_GBB5_TABLEFILE: /usr/local/lib/chinese/HBF/hc.tab

cnprint 2.80 的 BIG5 到 GB 转换不仅能做到一般的字对字转换,还能做到词对词的转换。 然而 cnprint 本身也未提供转换的字典,你必须自行建立。详情请参考 man cnprint.

6.2 ps2cps

这个小程序的功能是将原本无法以中文输出的 PostScript 档转换成可以以中文输出。 例如 Netscape 在列印时是先将文档转成 PostScript,但其输出的 PostScript 却不包含中文字型,这使得原来是中文的部分变成乱码印出。 这个程序可以读入 PostScript 档,将其乱码的部分改以中文字取代之,并将结果送到标准输出,则其输出结果便可送到任何可以印 PostScript 文件的印表机列印。

在下面地点取得:

ftp://linux.cis.nctu.edu.tw/packages/chinese/misc/ps2cps-0.1.tgz

解开后视你的需要修改 Makefile:

        BINPATH    : 可执行档 (ps2cps) 的安装路径
        PS2CPSPATH : PS2CPS 的资源档路径
        PS2CPSRC   : PS2CPS 资源档的名称

再来 make all install 即可。

你必须按照上节的方法先安装好 HBF 中文字型。再来修改你的 ps2cpsrc 文档:

        HBF_PATH:      定义 HBF 字型所在目路
        HBF_NAME:      定义 HBF 字型的名称 ( .hbf ,不含路径 )
        CH_WORD_SHIFT: 定义中文字型位移。
其中最后一项是用来调整中文字型的位置用的。由于有些中文字型与原本的英文字型可能不在同一水平线上,故可以设此变数以做上下调整。其值为 -1.0 至 +1.0 之间。

然后你就可以用作者附的范例来测试:

# ps2cps thhsieh.ps > c-thhsieh.ps
ghostview 来试试能否看到中文字型。

然而这个程序尚在测试阶段,有许多问题待解决。若你有任何问题或是建议可直接向作者反应: 台大物研所谢东翰 < thhsieh@twclx.phys.ntu.edu.tw>.

6.3 bg2ps

这也是一个将 BIG5 中文文档转成可列印的 PostScript 档,功能和 cnprint 类似。 但是它使用 TrueType 字型因此输出结果比较漂亮。它还另外附一个可将 Netscape 输出的 PostScript 转换成可列印中文的 script. 作者是 Chen-Shan Chin < cschin@u.washington.edu>.

你可以从这里取得软件:

http://weber.u.washington.edu/~cschin/bg2ps/

安装 bg2ps

解开压缩档并编译:

# mkdir bg2ps
# cd bg2ps
# tar xzvf bg5ps.tgz 
# gcc -O2 ttf2psm.c -o ttf2psm

再来安装 TrueType 字型。你可将它安装在 bg2ps 同一目录,或另外指定目录。请参考 安装 TTF 字型 的说明。 然后在你的目录下建一 .bg5ps.conf 文档,你可以直接拿它所附的范例 bg5ps.conf 来修改。 其中最重要的是将 chineseFontPath 指到你安装 TrueType 字型的目录,并将 fontName 改成你使用的字型名称。

用它所附的范例来测试,并用 ghostviewgv 观看结果:

# ./bg5ps -if test.gb2312 -of test.ps
# ghostview test.ps

安装 nps2cps

nps2cps 没有额外的设定档。你必须自行修改 nps2cps script 中的 chineseFontPathfontName.

测试 nps2cps:

# nps2cps < netscape.ps > test.ps
# ghostview test.ps

6.4 gb2ps

gb2ps 是另一种可以列印 GB 与 HZ 编码的工具程序。

如何取得 gb2ps

套件:

gb2ps.2.02.tar.gz       
ftp://ftp.ifcss.org/pub/software/unix/print
字型:

csong24.ccf     ckai24.ccf
cfang24.ccf     chei24.ccf   
ftp://ftp.ifcss.org/pub/software/fonts/gb/misc/
将字型放在某个目录下,例如 /usr/local/lib/chinese/CFONT

安装 gb2ps

在编译 gb2ps 之前先更改 Makefile 的设定

CFONT=/usr/local/lib/chinese/CFONT/
COVERPAGE=/usr/local/lib/chinese/lib/cover.ps
然后打
# make
# cp gb2ps /usr/local/bin


Next Previous Contents