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