歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 簡談linux中文打印

簡談linux中文打印

日期:2017/2/27 9:41:09   编辑:更多Linux
  在 Linux 下打印是件麻煩事, 中文打印由甚. 為什麼哪? 將屏幕上看到的文字 印到紙上, 要經過兩步: 1. 應用程序生成 postscript 文件; 2. 將該文件送 到打印機 (直接或通過 Ghostscript). 讓我們先從第二步看起. 一. 如何打印中文 postscript 文件?最大的問題是一般打印機不支持或不帶中文字體. 一般我們使用 ghostscript, 但 ghostscript 對中文字體的支持也不是很完美. 大多數情況下需要打補丁. 目前有以下幾種解決方案, 根據我個人的偏愛程度為序. 1. 直接 patch ghostscript 使其支持 truetype 字體. 可參看該網站. 這是目前 最為簡單的方法. 缺點是需要 > 6.0 版的 ghostscript, 該版目前還沒有以 GPL 施放, 任何 linux都不會預裝, 需要自己下載安裝. 2. 使用 CID 字體. CID 是 adobe 為亞洲文字設計的字體, 打破了 type1 字體只 能容納 256 個字符的限制. ghostscript (> V5.5?) 直接支持 CID 字體, 無需 補丁. 可參看同一網站如何設置. 本來這應該是最好的方案, 因為不要打補丁.可惜 CID 字體太少了, 故我將此列為第二. 3. Patch ghostscript 使其支持 VFlib, 通過 VFlib 支持 truetype 字體. 優點 是支持老的 ghostscript 版本 (中文有 for 5.5 的 patch, 日文甚至有 for 4.x 的), 支持字體變形等. 缺點是需要額外安裝 VFlib. Turbolinux 6.0 以上及 CLE v0.9p1以上均使用了該方法. 可以到它們相應的軟件包中找補丁. 4. 陳向陽的 gbpfb 包, 將中文 truetype 字體轉換成 type1 pfb 字體, 由於 type1 字體只能容納 256 個字符的限制, 一個 truetype 字體將會生成 30-40個 pfb 字 體, 再由一個前端文件控制. 當年這是我們中國人唯一知到的打印中文 postscript 文件的方法. 我還記得用此法第一次從 netscape 打印出中文的驚喜. Turbolinux 4.x 以下及藍點等中文發布均使用了該方法. 但現在與前述的 1-3 法相比, 顯得有 些簡陋, 存在一些難以克服的毛病, 已經越來越少的被使用了. 如果您想要可以在 上面提到的幾個中文 linux 中找到. 5. 在 postscript 文件中內嵌中文點陣字體. 優點是連 ghostscript 都不需要了, 直接送到任何支持 postscript 的打印機上就可打印. 缺點是生成的文件龐大, 打印出的質量欠佳. Latex CJK 生成的 postscript 文件即采用此法. 前幾天 見網友的貼子, 說可以直接打印文傑的 postscript 文件, 我有些懷疑它也是用 該法. 最後, 使用 1-4 法都需要通過 ghostscript 將文件發往打印機. 有兩種用法: 直接使用, 如: gs -q -dBATCH -sDEVICE=printer-type -sOutputFile=\lpr - 或設置 filter 使 lpr 自動調用 ghostscript, 看 ghostscript 的文檔吧, 我 懶得寫了 :) 二. 我能打印中文 postscript 文件, 可是還是不能從 xxx 程序中打印中文!?這就需要我們看看打印過程的第一步, 即應用程序生成postscript 文件. 目前有多少 linux 下的程序能生成支持中文的 postscript 文件? 少只又少, 真正不需要任何補丁就能 work 的我知道的有三個: netscape/mozilla/abiWord(>=0.12).主要問題是很少有程序能正確處理中文 font. 在 UNIX/LINUX 世界沒有統一的打印API, 任何程序想打印, 必須自己寫 code 生成 postscript 文件, 很難想像所有程序員都原意並有能力考慮中文 postscript 字體問題. 現在 gnome-print 和 QTprinter class 都是試圖產生一個公用 API 以便應用程序不必自己處理生成 postscript的問題. 可惜二者都處於起步階段, 僅僅聚焦於 type1 字體, 還沒顧的上考慮中文的問題. 也就是說目前所有 GNOME/KDE 應用程序, 只要使用這兩個 API, 都不能生成正確的中文 postscript 文件, 不能印出中文字. 台灣有人(見CLE的QT包)寫了 QT printer 的patch, 但還不是很完善; 沒聽說有 gnome-print 的中文 patch.




Copyright © Linux教程網 All Rights Reserved