軟硬件配置:
- 操作系統:Slackware 9.0
- 打印機:HP LaserJet 6L
- 打印服務程序:CUPS 1.1.18
- Ghostscript 7.05
- Mozilla 1.4 中文版
說明:下面的操作幾乎都需要root權限。
一、安裝打印服務程序
Slackware 9.0 默認的打印服務程序是lpd,而現在更流行的是CUPS,設置也非常簡單。可以到slackware下載的鏡像站,在發行版本的 extra目錄中下載,目前的版本是cups-1.1.18。用installpkg安裝。
安裝完畢後,會在/etc/rc.d/目錄生成rc.cups文件,用root身份,運行 /etc/rc.d/rc.cups start ,即可啟動cups打印服務。用浏覽器訪問 http://localhost:631/ 即可對cups和打印機進行設置,詳情請看cups的文檔。
添加打印機並成功打印出測試頁之後,gedit和starsuite就直接能在我的HP LJ6L打印出中文。
二、設置ghostscript的中文支持
許多程序能夠通過ghostscript生成postscript文件(.ps),如果能使ghostscript支持中文,就能夠間接支持這些程序的中文打印。Slackware9.0自帶的ghostscript是7.05版。
1. 下載CMap字體文件
FTP://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200211.tar.gz
ftp://ftp.gyve.org/pub/gs-cjk/acro5-cmaps-2001.tar.gz
把上面兩個文件解壓縮到/usr/share/ghostscript/Resource目錄(如果沒有這個目錄,請自己mkdir)
cp adobe-cmaps-200211.tar.gz /usr/share/ghostscript/Resource
cp acro5-cmaps-2001.tar.gz /usr/share/ghostscript/Resource
tar zxvf adobe-cmaps-200211.tar.gz
tar zxvf acro5-cmaps-2001.tar.gz
rm *.gz
再建兩個字體目錄:
mkdir /usr/share/ghostscript/Resource/CIDFont /usr/share/ghostscript/Resource/Font
2.下載freetype-1.3.1(後面的ttfm需要)
http://sourceforge.net/project/show...p?group_id=3157
下載源碼,自行編譯安裝,完成後運行 ldconfig 更新庫文件索引
3. 下載ttfm
http://www.Linuxeden.com/download/s....PHP?softid=650
下載 ttfm-1.0-6.i386.rpm 和 gscjk.ttfm
安裝:
rpm -ivh ttfm-1.0-6.i386.rpm --nodeps
cp gscjk.ttfm /usr/share/fonts/install/
4.安裝中文字體
我用的是ms windows提供的simsun.ttf, simhei.ttf, simkai.ttf 和simfang.ttf
把這四個字體放到 /usr/share/fonts/ttf目錄中,也可以僅在這個目錄裡建立指向字體所在路徑的符號鏈接。
然後:
cd /usr/share/fonts/install
ttfm.sh --initm gscjk.ttfm
這樣就會在 /usr/share/ghostscript/Resource/CIDFont 和 /usr/share/ghostscript/Resource/Font 目錄中生成對上面四種中文字體的描述文件。
5.讓ghostscript啟動時自動加載我們安裝的中文字體
首先,修改 /usr/share/ghostscript/7.05/lib/gs_res.ps 文件,在其中找到這樣兩行:
/FontResourceDir (/usr/share/ghostscript/fonts/) readonly .forcedef
/GenericResourceDir (/usr/share/ghostcript/) readonly .forcedef
改為:
/FontResourceDir (/usr/share/ghostscript/Resource/Font/) readonly .forcedef
/GenericResourceDir (/usr/share/ghostscript/Resource/) readonly .forcedef
然後,建立CIDFnmap文件:
toUCh /usr/share/ghostscript/7.05/lib/CIDFnmap.zh
編輯這個文件,輸入下面的內容:
源碼:
/SimSun (/usr/share/fonts/ttf/simsun.ttf) 1 ;
/SimHei (/usr/share/fonts/ttf/simhei.ttf) 1 ;
/FangSong_GB2312 (/usr/share/fonts/ttf/simfang.ttf) 1 ;
/KaiTi_GB2312 (/usr/share/fonts/ttf/simkai.ttf) 1 ;
/Adobe-GB1 /SimSun ;
/STSong-Light /SimSun ;
/STFangsong-Light /FangSong_GB2312 ;
/STHeiti-Regular /SimHei ;
/STKaiti-Regular /KaiTi_GB2312 ;
這個文件指明了TrueType字體的路徑,並建立了字體的別名。如果需要繁體中文,可以根據上面的原理自己添加Mingliu等字體。
最後,編輯/usr/share/ghostscript/7.05/lib/CIDFnmap,在文件末尾加入一行:
(CIDFnmap.zh) .runlibfile
6.測試
cd /usr/share/ghostscript/7.05/examples/cjk
gv gscjk_ag.ps
如果能看到四種字體的漢字,說明ghostscript簡體中文字體設置成功。
三、設置mozilla支持中文打印
編輯 mozilla安裝目錄裡面的/defauts/pref 目錄下的 unix.js 文件,找到相應的行改成如下內容,如果沒有這些行,自己增加。
pref("print.postscript.nativecode.zh-TW", "gbk");
pref("print.postscript.nativefont.zh-TW", "SimSun-GBK-EUC-H");
pref("print.postscript.nativecode.zh-CN", "gbk");
pref("print.postscript.nativefont.zh-CN", "SimSun-GBK-EUC-H");
完成後,存盤,重新啟動mozilla。
如果直接讓mozilla輸出到打印機,中文不能正常打印而是以方框顯示。因此需要采用間接的方法,打印時,選擇打印到文件 mozilla.ps,然後:
ps2ps mozilla.ps out.ps
lpr out.ps
也可以先打印成mozilla.ps,然後選擇菜單的“文件/打印/打印機屬性”,在打印命令欄設定如下:
ps2ps mozilla.ps out.ps && lpr out.ps && rm mozilla.ps out.ps -f
以上命令輸入一次後就不用再輸入第二次了。再選直接打印到打印機,每次打印完後會把/home/USER目錄下的mozilla.ps和out.ps文件刪掉,以便下次打印其他文檔。
這樣就實現了mozilla的中文打印(謝謝kite兄指教)。
四、其他程序的中文打印
試驗過gedit和starsuite6.0,均在安裝cups並設置好打印機後,直接支持中文打印。
abiWord的中文打印支持需另行設置,我沒有測試,請參考最後附的參考文檔。
其他的程序,如果直接打印不支持中文,可看看其是否有生成.ps文件的打印選項,然後嘗試類似mozilla的方式進行打印。
基於qt的程序按上面的方法設置後似乎還不能支持中文打印,我測試過kedit,中文打印出來是亂碼。
參考文檔:《Slackware 8.1上的中文列印》
http://zope.slat.org/Members/Keanu/...cprint.stx/view
lpr out.ps
也可以先打印成mozilla.ps,然後選擇菜單的“文件/打印/打印機屬性”,在打印命令欄設定如下:
ps2ps mozilla.ps out.ps && lpr out.ps && rm mozilla.ps out.ps -f
以上命令輸入一次後就不用再輸入第二次了。再選直接打印到打印機,每次打印完後會把/home/USER目錄下的mozilla.ps和out.ps文件刪掉,以便下次打印其他文檔。
這樣就實現了mozilla的中文打印(謝謝kite兄指教)。
四、其他程序的中文打印
試驗過gedit和starsuite6.0,均在安裝cups並設置好打印機後,直接支持中文打印。
abiWord的中文打印支持需另行設置,我沒有測試,請參考最後附的參考文檔。
其他的程序,如果直接打印不支持中文,可看看其是否有生成.ps文件的打印選項,然後嘗試類似mozilla的方式進行打印。
基於qt的程序按上面的方法設置後似乎還不能支持中文打印,我測試過kedit,中文打印出來是亂碼。
參考文檔:《Slackware 8.1上的中文列印》
http://zope.slat.org/Members/Keanu/...cprint.stx/view