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.big5 -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