摘 要:本文在構(gòu)建BMP格式的個(gè)性化字庫(kù)的基礎(chǔ)上,研究對(duì)字庫(kù)進(jìn)行調(diào)用、對(duì)參數(shù)進(jìn)行設(shè)定、對(duì)排版格式進(jìn)行控制,完成個(gè)性化的排版任務(wù)。
關(guān)鍵詞:BMP 個(gè)性化字庫(kù) 排版
中圖分類號(hào):H139 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2012)12(a)-0012-01
1 BMP格式
BMP是英文Bitmap(位圖)的簡(jiǎn)寫(xiě),它是Windows操作系統(tǒng)中的標(biāo)準(zhǔn)圖像文件格式,能夠被多種Windows應(yīng)用程序所支持。隨著Windows操作系統(tǒng)的流行與豐富的Windows應(yīng)用程序的開(kāi)發(fā),BMP位圖格式理所當(dāng)然地被廣泛應(yīng)用。這種格式的特點(diǎn)是包含的圖像信息較豐富,幾乎不進(jìn)行壓縮,但由此導(dǎo)致了它與生俱生來(lái)的缺點(diǎn)—— 占用磁盤(pán)空間過(guò)大[1]。
盡管文件大小比較大,但是位圖文件的簡(jiǎn)單性、在微軟視窗和其他地方的廣泛使用以及這種格式的優(yōu)秀文檔標(biāo)準(zhǔn)以及沒(méi)有專利約束,使得它成為其他操作系統(tǒng)圖像處理程序能夠讀寫(xiě)的一種最為常用的格式[2]。
2 個(gè)性化字庫(kù)在排版中的應(yīng)用
計(jì)算機(jī)用戶在進(jìn)行文字編排的時(shí)候,總希望將自己的文檔變得美觀大方、惹人喜愛(ài),于是就會(huì)選擇自己喜愛(ài)的字體字號(hào)進(jìn)行編排??墒窍到y(tǒng)中常用的漢字字體不外乎宋體、黑體等幾種,在當(dāng)今這個(gè)個(gè)性化張揚(yáng)的時(shí)代,有不少人渴望能將自己的字體顯示、打印輸出[3]。為了達(dá)到這個(gè)目的,方法之一是開(kāi)發(fā)個(gè)性化的TTF字體。比如,2007年4月27日下午徐靜蕾發(fā)布了一款自己書(shū)寫(xiě)的個(gè)性化字體,此字體由方正電子根據(jù)徐靜蕾的手寫(xiě)字體為其量身定做,被命名“方正靜蕾簡(jiǎn)體”[4]。此方法好是好,但是這么多年不能推廣開(kāi)來(lái)的致命缺陷因素是價(jià)格太高,動(dòng)輒幾萬(wàn)元的開(kāi)發(fā)成本讓普通人望而卻步。我們可以采取別的方法。比如:筆者在研究過(guò)程中發(fā)現(xiàn)生成個(gè)性化字庫(kù)可以將用戶的手寫(xiě)體用高點(diǎn)陣BMP格式圖片文件存儲(chǔ),在此基礎(chǔ)上開(kāi)發(fā)個(gè)性化的排版應(yīng)用程序,滿足用戶個(gè)性化需求。
3 BMP格式的個(gè)性化字庫(kù)排版應(yīng)用程序的實(shí)現(xiàn)
我們重點(diǎn)研究如何實(shí)現(xiàn)高點(diǎn)陣BMP格式個(gè)性化字庫(kù)的顯示與打印輸出。程序按以下步驟來(lái)完成個(gè)性化字庫(kù)的輸出。
3.1 導(dǎo)入個(gè)性化字庫(kù)信息
導(dǎo)入相應(yīng)的漢字(6763個(gè))、符號(hào)(371個(gè))、字符的內(nèi)碼,字符對(duì)應(yīng)的圖像文件信息。相應(yīng)的關(guān)鍵代碼如下:
Open"d:\gxxzk\zk_inf.txt"For Input As 10
Do While Not EOF(10)And i<7134
i=i+1
Input #10,a(i,1),a(i,2),a(i,3),a(i,4), a(i,5)
Loop
3.2 讓用戶設(shè)定各項(xiàng)輸出參數(shù)
其中重要的有:原始電子文檔的文件名,輸出的字的大小、輸出的字間距、行間距。原始電子文檔的文件擴(kuò)展名定義為文本文件格式。建議用戶在設(shè)定輸出的字的大小時(shí)用3~5號(hào)字,字太小了看不清楚,字太大了會(huì)產(chǎn)生鋸齒,影響美觀。
3.3 讀取原始電子文檔、進(jìn)行內(nèi)碼轉(zhuǎn)換,依次處理文檔內(nèi)容
程序用三重循環(huán)實(shí)現(xiàn)。外循環(huán)對(duì)整個(gè)文檔進(jìn)行處理,中間循環(huán)對(duì)每一個(gè)以回車分割的段落進(jìn)行處理,內(nèi)循環(huán)對(duì)段落中的每一個(gè)字進(jìn)行處理。相應(yīng)的關(guān)鍵代碼如下:
j=j+1
Load Image1(j)
Image1(j)=LoadPicture("d:\gxxhzk\" & s_filename &".bmp")
Image1(j).Left=l
Image1(j).Top=t+zh*0.5-zh*h_bl*0.5
Image1(j).Width=zh*w_bl
Image1(j).Height=zh*h_bl
Image1(j).Visible=True
這里j+1表示開(kāi)始處理第一個(gè)字或下一個(gè)字,l表示一個(gè)字符的起始左邊界,t表示一個(gè)字符的起始上邊界,zh表示相應(yīng)的字號(hào),bl意思為根據(jù)字的高矮胖瘦調(diào)節(jié)的比例因子。根據(jù)頁(yè)面大小,控制l和t自動(dòng)變化。
3.4 打印預(yù)覽、結(jié)果輸出
Form1.PrintForm可以實(shí)現(xiàn)窗體內(nèi)容的打印。運(yùn)行排版應(yīng)用程序可以進(jìn)行打印預(yù)覽、結(jié)果輸出。最好在輸出時(shí)選用噴墨打印機(jī),它能最大限度地還原手寫(xiě)者的原筆跡,讓不明就里的閱讀者誤以為這是用戶親筆書(shū)寫(xiě)的。
4 輸出實(shí)例
下面是一個(gè)BMP格式的個(gè)性化字庫(kù)排版應(yīng)用程序的排版結(jié)果樣例:
從樣例我們可以看出:程序能根據(jù)用戶的需求進(jìn)行排版輸出,能設(shè)定字間距、行間距,能忠實(shí)地還原書(shū)寫(xiě)者當(dāng)初書(shū)寫(xiě)的特點(diǎn),比如字的大小、胖瘦、筆跡的粗細(xì)等。排版結(jié)果美觀大方。
參考文獻(xiàn)
[1]selina_sai.BMP格式[EB/OL].http://baike.baidu.com/view/189487.htm,2012-8-30/2012-9-18.
[2]維基人.BMP[EB/OL].http://zh.wikipedia.org/wiki/BMP,2012-8-12/2012-9-18.
[3]馬文軍,李保明.中文信息個(gè)性化打印輸出系統(tǒng)的方案設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2006(11):153.
[4]百科ROBOT.方正徐靜蕾體[EB/OL].http://baike.baidu.com/view/1708957.htm,2012-03-08/2012-07-22.