啊,被點名了。
真是抱歉,弟這幾天都在試用 FreeBSD 5.0,所以直到今天才看到這篇文章
老實說,弟在去年 12 月份就已經開始著手撰寫最新版本有關 Debian 中文列印的文章了,只是由於偷懶的關係,所以一直拖到現在都還沒有完成。
弟先把未完成的文章先放上來好了,再跟大家一起討論有問題的地方,繼續把它給完成。
-------------------------------------------------------
8.3 列印
安裝印表機
安裝印表機需要的套件有下面兩種方案:
* CUPS (Common Unix Printing System):
apt-get install cupsys cupsys-client foomatic-bin
在設定 foomatic-bin 的 printfilter 的時候,選擇 Automagic,其餘選擇預設值就可以了。
使用 KDE 2.2 的人要再安裝下面這個套件 (KDE 3.X 的使用者不需要安裝此套件):
apt-get install kdelibs3-cups
打開您愛用的瀏覽器,連結到
http://www.linuxprinting.org/printer_list.cgi 這個網址找尋您的印表機型號。底下以 Epson Stylus Color 460 為例子。
附圖一
http://home.kimo.com.tw/octapult/screen ... all-1.html
選擇好您的印表機型號以後,按下 "show",進入下一個畫面:
附圖二
http://home.kimo.com.tw/octapult/screen ... all-2.html
接下來您可以在附圖二這個畫面中找到 Linuxprinting 網站所推薦最適合 Epson Stylus Color 460 這台印表機的驅動程式 (Recommended driver) 為 gimp-print,點選之後進入下一個設定畫面:
附圖三
http://home.kimo.com.tw/octapult/screen ... all-3.html
在附圖三中再一次選擇 Epson Stylus Color 460,然後按下 "Generate PPD file",接下來將產生出來的 Epson-Stylus_Color_460-gimp-print.ppd 這個檔案儲存起來。
接下來以 root 的身份 (您可以使用 su - 指令),將這個檔案拷貝到 /usr/share/cups/model 底下。
切記!請使用 cp 指令而不要使用 mv 指令,以確保檔案的擁有者為 root。
接著將這個檔案的權限設為所有的人都可以讀取:
chmod a+r /usr/share/cups/model/Epson-Stylus_Color_460-gimp-print.ppd
接著以 root 的身份重新啟動 cupsys:
/etc/init.d/cupsys restart
KDE 使用者可以經由 Control Center 來設定印表機
非KDE 使用者可以由您的瀏覽器連結到
http://localhost:631 來設定印表機。
請選擇 "Manage Printers" -> "Add Printer" -> 輸入 root 的帳號和密碼 -> 接者請輸入您給印表機的名稱和
一些簡單的敘述:
附圖四
http://home.kimo.com.tw/octapult/screen ... all-4.html
接著請選擇連接到印表機的介面 (device):
附圖五
http://home.kimo.com.tw/octapult/screen ... all-5.html
接著請選擇印表機的型號和驅動程式 (model/driver):
附圖六
http://home.kimo.com.tw/octapult/screen ... all-6.html
完成後,點選您的印表機名稱,可以看到下面這個畫面,就表示您設定完成:
附圖七
http://home.kimo.com.tw/octapult/screen ... all-7.html
接下來您可以執行 "Print Test Page",看看印表機是否能夠正常列印。
假如不能正常列印的話,請回到附圖二,選擇其他的驅動程式,然後重複上面的步驟。
* Red Hat printtool:
只要下 apt-get install printtool,其餘套件會自動補齊。
然後以 root 的身份執行printtool,選好印表機型號就可以了。
註:第一種方案支援的印表機種類比較多。
設定 ghostscript/postscript
* 安裝相關套件:
請參考前面安裝中文字型的步驟,安裝好 defoma、x-ttfcidfont-conf 和
ttf-arphic-* (文鼎 big-5 和 gb 碼中文字型套件) 等相關套件,然後再安裝下列套件:
gs、gs-cjk-resource、gsfonts*、cmap-adobe-*、psfontmgr、gv。安裝好後,請檢查
/var/lib/defoma/gs.d/dirs/CMap 和 /var/lib/defoma/gs.d/dirs/fonts 的底下是否已經存在
各個相關檔案,接著請檢查 /var/lib/defoma/gs.d/dirs/fonts/CIDFnmap 是否有下面這幾行:
/ZenKai-Medium (bkai00mp.ttf) /Adobe-CNS1-Unicode ;
/ShanHeiSun-Light (bsmi00lp.ttf) /Adobe-CNS1-Unicode ;
/GBZenKai-Medium (gkai00mp.ttf) /Adobe-GB1-Unicode ;
/BousungEG-Light-GB (gbsn00lp.ttf) /Adobe-GB1-Unicode ;
接下來的設定為求簡便,所以將以 big5 碼的文鼎細上海宋和文鼎中楷為範例。
當您確定上面幾行存在時,表示 gs 和各種相關字型已經安裝完成。
接著我們來測試一下中文列印。請將下面這一段文字存成 test.ps:
%!
%% 文鼎字型列印測試檔案
/ShanHeiSun-Light-ETen-B5-H findfont 30 scalefont setfont
50 740 moveto (文鼎細上海宋標準) show
/ShanHeiSun-Light-ETen-B5-H findfont 30 scalefont setfont
1 setlinewidth 1 setlinejoin
newpath
50 700 moveto (文鼎細上海宋粗) false charpath stroke
50 700 moveto (文鼎細上海宋粗) show
/ShanHeiSun-Light-ETen-B5-H findfont [ 1 0 .3 1 0 0 ] makefont 30 scalefont setf
ont
50 660 moveto (文鼎細上海宋右斜) show
/ShanHeiSun-Light-ETen-B5-H findfont [ 1 0 .3 1 0 0 ] makefont 30 scalefont setf
ont
1 setlinewidth 1 setlinejoin
newpath
50 620 moveto (文鼎細上海宋右粗斜) false charpath stroke
50 620 moveto (文鼎細上海宋右粗斜) show
/ZenKai-Medium-ETen-B5-H findfont 30 scalefont setfont
50 580 moveto (文鼎中楷標準) show
/ZenKai-Medium-ETen-B5-H findfont 30 scalefont setfont
1 setlinewidth 1 setlinejoin
newpath
50 540 moveto (文鼎中楷粗) false charpath stroke
50 540 moveto (文鼎中楷粗) show
/ZenKai-Medium-ETen-B5-H findfont [ 1 0 .3 1 0 0 ] makefont 30 scalefont setfont
50 500 moveto (文鼎中楷右斜) show
/ZenKai-Medium-ETen-B5-H findfont [ 1 0 .3 1 0 0 ] makefont 30 scalefont setfont
1 setlinewidth 1 setlinejoin
newpath
50 460 moveto (文鼎中楷右粗斜) false charpath stroke
50 460 moveto (文鼎中楷右粗斜) show
gsave
/ZenKai-Medium-ETen-B5-H findfont [ 1 0 0 1 0 0 ] makefont 30 scalefont setfont
2 1 scale
50 420 moveto (文鼎正楷左右加寬) show
grestore
/ShanHeiSun-Light-ETen-B5-H findfont [ 1 0 0 1 0 0 ] makefont 30 scalefont
setfont
.03 setlinewidth 1 setlinejoin
newpath
50 380 moveto (文鼎細上海宋中空) true charpath stroke
/ZenKai-Medium-ETen-B5-H findfont [ 1 0 -.3 1 0 0 ] makefont 30 scalefont setfon
t
.03 setlinewidth 1 setlinejoin
newpath
50 340 moveto (文鼎中楷左斜中空) true charpath stroke
/Arphic-MingB5-ETen-B5-H findfont [ 1 0 0 1 0 0 ] makefont 30 scalefont setfont
400 650 translate
-60 rotate
1 0 0 setrgbcolor
0.5 1 scale
newpath
0 0 moveto (文鼎細上海宋中空彩色轉換旋轉) true charpath stroke
showpage
接著請執行下面的指令測試印表機是否能正常列印各種粗斜等字體的中文字型:
lp test.ps
(使用 printool 安裝印表機的使用者請將 lp 指令改成 lpr。底下將不再重複提醒。)
列印出來的中文就如下面這個附圖:
附圖七
http://home.kimo.com.tw/octapult/screen ... all-7.html
* 設定中文列印字型的粗體字與斜體字:
請到下面這個網址下載 Adobe 的 CMAP 檔案:
ftp://ftp.gyve.org/pub/gs-cjk/adobe-cmaps-200204.tar.gz
接著將這個檔案解壓縮:
tar zxvf adobe-cmaps-200204.tar.gz
由於 cmap-adobe-* 等套件已經安裝了大部份的 Adobe CMap 檔案,所以我們只需要
ai0/CMap 底下的 Identity-H 和 Identity-V 這兩個檔案。接下來請以 root 的身份
將這兩個檔案拷貝到 /usr/share/fonts/cmap/adobe-identity 底下:
mkdir /usr/share/fonts/cmap/adobe-identity
cp ai0/CMap/* /usr/share/fonts/cmap/adobe-identity
接著請建立下面兩個 symbolic link:
ln -s /usr/share/fonts/cmap/adobe-identity/Identity-H
/var/lib/defoma/gs.d/dirs/fonts/CMap/Identity-H
ln -s /usr/share/fonts/cmap/adobe-identity/Identity-V
/var/lib/defoma/gs.d/dirs/fonts/CMap/Identity-V
接著我們編寫粗體和斜體相對應的設定檔案:
ShanHeiSun-Light-Italic 細上海宋斜體的內容:
%!PS-Adobe-3.0 Resource-CIDFont
%%BeginResource: CIDFont (ShanHeiSun-Light-Italic)
/ShanHeiSun-Light-Italic
/ShanHeiSun-Light /CIDFont findresource
dup length dict begin { 1 index /FontMatrix eq { [1 0 .3 1 0 0] matrix concatmat
rix def } { def } ifelse } forall currentdict end
/CIDFont defineresource pop
%%EndResource
%%EOF
ShanHeiSun-Light-Bold 細上海宋粗體的內容:
%!PS-Adobe-3.0 Resource-CIDFont
%%BeginResource: CIDFont (ShanHeiSun-Light-Bold)
/ShanHeiSun-Light-Bold
/ShanHeiSun-Light /CIDFont findresource
16 dict begin
/basecidfont exch def
/basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
/basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
/CIDFontName dup basecidfont exch get def
/CIDFontType 1 def
/CIDSystemInfo dup basecidfont exch get def
/FontInfo dup basecidfont exch get def
/FontMatrix [ 1 0 0 1 0 0 ] def
/FontBBox [
basecidfont /FontBBox get cvx exec
4 2 roll basecidfont /FontMatrix get transform
4 2 roll basecidfont /FontMatrix get transform
] def
/cid 2 string def
/BuildGlyph {
gsave
exch begin
dup 256 idiv cid exch 0 exch put
256 mod cid exch 1 exch put
rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
{ basefont-V } { basefont-H } ifelse setfont
.03 setlinewidth 1 setlinejoin
newpath
0 0 moveto cid false charpath stroke
0 0 moveto cid show
currentpoint setcharwidth
end
grestore
} bind def
currentdict
end
/CIDFont defineresource pop
%%EndResource
%%EOF
ShanHeiSun-Light-BoldItalic 細上海宋粗斜體的內容:
%!PS-Adobe-3.0 Resource-CIDFont
%%BeginResource: CIDFont (ShanHeiSun-Light-BoldItalic)
/ShanHeiSun-Light-BoldItalic
/ShanHeiSun-Light /CIDFont findresource
16 dict begin
/basecidfont exch def
/basefont-H /.basefont-H /Identity-H [ basecidfont ] composefont def
/basefont-V /.basefont-V /Identity-V [ basecidfont ] composefont def
/CIDFontName dup basecidfont exch get def
/CIDFontType 1 def
/CIDSystemInfo dup basecidfont exch get def
/FontInfo dup basecidfont exch get def
/FontMatrix [ 1 0 0 1 0 0 ] def
/FontBBox [
basecidfont /FontBBox get cvx exec
4 2 roll basecidfont /FontMatrix get transform
4 2 roll basecidfont /FontMatrix get transform
] def
/cid 2 string def
/BuildGlyph {
gsave
exch begin
dup 256 idiv cid exch 0 exch put
256 mod cid exch 1 exch put
rootfont /WMode known { rootfont /WMode get 1 eq } { false } ifelse
{ basefont-V } { basefont-H } ifelse setfont
.03 setlinewidth 1 setlinejoin
newpath
0 0 moveto cid false charpath stroke
0 0 moveto cid show
currentpoint setcharwidth
end
grestore
} bind def
currentdict
end
dup length dict begin { 1 index /FontMatrix eq { [1 0 .3 1 0 0] matrix concatmat
rix def } { def } ifelse } forall currentdict end
/CIDFont defineresource pop
%%EndResource
%%EOF
請將上面 ShanHeiSun-Light-Italic、ShanHeiSun-Light-Bold、ShanHeiSun-Light-BoldItalic 等三個檔案放在 /var/lib/defoma/gs.d/dirs/fonts 底下,這樣 gs 就可以找到這些字型了。
其他您想要作粗體與斜體設定的字體也是依照上面的步驟辦理。例如 ZenKai-Medium-Italic、ZenKai-Medium-Bold、ZenKai-Medium-BoldItalic...等等。
* AbiWord 的中文列印:
.
.
尚
待
完
成
.
.
8.4 常見問答集
如何在 Mozilla 底下列印中文
修改 /usr/lib/mozilla/defaults/pref/unix.js 的後面幾行:
pref("print.postscript.nativecode.zh-TW", "big5");
pref("print.postscript.nativefont.zh-TW",
"ShanHeiSun-Light-ETen-B5-H");
假如印出來的中文仍然是框框的話,請由 Mozilla 的 "檔案" -> "列印" -> "屬性" -> "列印命令",
請將列印命令修改如下:
ps2ps mozilla.ps out.ps ; lp out.ps
p.s. 有關列印字型的粗體和斜體的設定是採用 ttfm project 的研究成果,在此感謝這些先進們的努力,我們才能享受這些豐碩的果實。
-----------------------------------------------------
如同阿信兄說的,其實在安裝好印表機與 gs-cjk 以後,中文列印基本上已經完成了,只是各個應用程式都有它自己列印的設定方式,這邊實在是造成使用者很大的負擔。