


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要介紹了在無(wú)漢字字庫(kù)的打印機(jī)上,無(wú)需啟動(dòng)漢字操作系統(tǒng)打印漢字的方法,并給出了非漢字系統(tǒng)下打印輸出含有漢字的文本文件的實(shí)用VC+源程序。 關(guān)鍵詞漢字打印,Zebra系列, VC+語(yǔ)言,24*24點(diǎn)陣字庫(kù),文本文件 電腦用戶中,有相當(dāng)一部分用戶的打印機(jī)不帶漢字庫(kù),他們打印輸出漢字的一般方法是,首先啟動(dòng)漢字操作系統(tǒng),使?jié)h字打印驅(qū)動(dòng)程序駐留內(nèi)存,再把含有漢字的文本文件送打印機(jī)輸出,或特定格式的漢字文件經(jīng)應(yīng)用程序打印輸出;這對(duì)于只是單一打印漢字文件,還是比較簡(jiǎn)單實(shí)用的,但有時(shí)在我們自編的應(yīng)用程序中,只是要打印漢字,而不需要屏幕顯示或鍵盤輸入漢字,在漢字系統(tǒng)下運(yùn)行應(yīng)用程序時(shí),會(huì)帶來(lái)一些副作用,如漢字系統(tǒng)
2、占用內(nèi)存資源、使顯示速度變慢等。若在西文狀態(tài)下,使不帶漢字庫(kù)的打印機(jī)也能打印輸出漢字,即可避免因啟動(dòng)漢字系統(tǒng)運(yùn)行應(yīng)用程序而帶來(lái)的麻煩。 筆者針對(duì)上述問題,經(jīng)過分析研究Zebra打印機(jī)命令碼,通過VC+語(yǔ)言編程,用矩陣轉(zhuǎn)置的方法實(shí)現(xiàn)了西文狀態(tài)下漢字的打印。 一、非漢字系統(tǒng)下漢字打印實(shí)現(xiàn)原理 以目前擁有工業(yè)用戶較多的Zebra系列打印機(jī)為例,說(shuō)明漢字打印實(shí)現(xiàn)原理,漢字打印的字摸數(shù)據(jù)來(lái)源于UCDOS的24*24點(diǎn)陣字庫(kù)。 打印機(jī)為用戶提供了自定義字符功能,標(biāo)準(zhǔn)字符存在打印機(jī)的ROM中,而用戶自定義字符則存在打印機(jī)的RAM中或直接對(duì)內(nèi)存進(jìn)行操作。同時(shí)為了避免因文本文件中出現(xiàn)重復(fù)漢字或圖形符號(hào)造成頻繁讀
3、取字庫(kù)而影響文本輸出速度,我們直接對(duì)內(nèi)存進(jìn)行操作。對(duì)圖像而言,由于占用內(nèi)存較大,影響運(yùn)行速度,所以放在RAM中。 把漢字庫(kù)字模點(diǎn)陣數(shù)據(jù)作為自定義字符的數(shù)據(jù),在打印機(jī)的內(nèi)存中生成自定義字符,再輸出內(nèi)存中的自定義字符,即可在打印機(jī)上打印漢字。 打印機(jī)自定義下載字符命令為: DGd,t,w,data其中DG為設(shè)置打印機(jī)為下載圖形模式; d為儲(chǔ)存圖形的目標(biāo)設(shè)備(內(nèi)存地址); t為圖像總的字節(jié)數(shù); w為每行字節(jié)數(shù); data為ASSII為十六進(jìn)制串圖像定義。因2424點(diǎn)陣打印一個(gè)字需要243=72個(gè)字節(jié),所以在這里 t=72,w=3。 選擇打印字符集命令為: XGd,t,w其中XG 為打印字符集命令;
4、d為儲(chǔ)存圖形的目標(biāo)設(shè)備(內(nèi)存地址); t為圖像總的字節(jié)數(shù); w為每行字節(jié)數(shù)。 由于24*24點(diǎn)陣打印字庫(kù)字模數(shù)據(jù)的存貯序列是按列優(yōu)先的順序,每列的24點(diǎn)用連續(xù)的3個(gè)字節(jié)存儲(chǔ),其順序是按字模的上中下排列,且每個(gè)字節(jié)的最高位在上、最低位在下;而Zebra系列打印機(jī)打印輸出序列是按行優(yōu)先的順序打印的,因此字模數(shù)據(jù)的存貯序列矩陣需行列轉(zhuǎn)置變換后才可送打印機(jī)打印。 二、漢字文本文件的打印 利用上述原理,可以在自己應(yīng)用程序中,實(shí)現(xiàn)在非漢字系統(tǒng)下,不帶漢字庫(kù)的打印機(jī)上(或帶漢字庫(kù)的打印機(jī)設(shè)置為英文方式)輸出漢字。 作為應(yīng)用,用VC+語(yǔ)言編制一打印含有漢字的文本文件的程序。 編程思路如下:置打印機(jī)為信函打印質(zhì)
5、量方式及每英寸10個(gè)字符,以使輸出一個(gè)漢字和圖形符號(hào)占兩個(gè)字符位置,處理文本文件中的字串,當(dāng)字串中遇到漢字時(shí)(連續(xù)兩個(gè)字符的第一個(gè)字符 ASCII 碼大于 175 且第二個(gè)字符ASCII碼大于 160),讀取UCDOS的24*24點(diǎn)陣漢字庫(kù)HZK24S(宋體)或HZK24F(仿宋體) 或 HZK24K(楷體)或HZK24H(黑體)中該漢字對(duì)應(yīng)的點(diǎn)陣數(shù)據(jù),當(dāng)字串中遇到圖形符號(hào)時(shí)(連續(xù)兩個(gè)字符ASCII碼的第一個(gè)字符ASCII 碼大于 160 小于176且第二個(gè)字符ASCII碼大于 160),讀取UCDOS的 24* 24 點(diǎn)陣圖形符號(hào)庫(kù)HZK24T中該圖形符號(hào)對(duì)應(yīng)的點(diǎn)陣數(shù)據(jù),用文本方式或圖形方式
6、輸出該漢字或圖形符號(hào),否則輸出原字符。 根據(jù)以上理解,得出如下讀取漢字字模的算法: 如前面所述,漢字以字模的形式儲(chǔ)存于字庫(kù)中,每個(gè)漢字在字庫(kù)中有唯一的區(qū)位碼與之對(duì)應(yīng),根據(jù)某一漢字的機(jī)內(nèi)碼可以確定其區(qū)位碼及其在字庫(kù)中的起始位置,就可以從字庫(kù)中取出漢字字模。具體步驟如下: (1)根據(jù)機(jī)內(nèi)碼計(jì)算漢字的區(qū)位碼 區(qū)碼=機(jī)內(nèi)碼高字節(jié)-A1H 位碼=機(jī)內(nèi)碼底字節(jié)-A1H (2)根據(jù)區(qū)位碼計(jì)算漢字在字庫(kù)中的偏移量 漢字在字庫(kù)中的偏移量L=(區(qū)碼-m)*94+位碼)*n 其中,m位漢字在字庫(kù)中的起始號(hào),n為每個(gè)漢字所占的字節(jié)數(shù)。字庫(kù)中:偏移量=(區(qū)碼-m)*94+位碼)*(字庫(kù)的點(diǎn)陣數(shù)2/8) /*因?yàn)橐粋€(gè)漢字
7、的每一個(gè)點(diǎn)是作為一個(gè)位 (bit)處理的,又8位為一個(gè)字節(jié)*/ 三、打印漢字文本文件VC+源程序 打印含有漢字的文本文件源程序的主要函數(shù)源代碼如下所示: /* /功能: 將要打印的部分漢字字庫(kù)裝入打印機(jī)內(nèi)存中 /輸入?yún)?shù): sHz 當(dāng)前需要初始化的漢字字串 /輸出參數(shù): HZtobyte 漢字點(diǎn)陣字節(jié)流/* #define FONTK_NAME c:Cclibhzk24k/標(biāo)準(zhǔn)24點(diǎn)陣楷體漢字字庫(kù) #define FONTT_NAME c:Cclibhzk24t/標(biāo)準(zhǔn)24點(diǎn)陣漢字索引庫(kù) void CHesnprinterDlg:MakeHZHEX(CString &sHZ,CString &HZtobyte) CFile theFile,theFile_t; CStringcsFileName=FONTK_NAME,csFileName_t=FONTT_NAME; BOOL bOpenOK,bOpenOK_t; HZtobyte=;/ Open the file without the Cre
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高考生物三年高考真題及模擬題分類匯編專題12種群和群落含解析
- 再生障礙性貧血護(hù)理教學(xué)查房
- 家庭教育書分享
- 中醫(yī)艾灸護(hù)理程序圖解
- 國(guó)畫動(dòng)物美術(shù)課件
- 腫瘤科春季健康宣教內(nèi)容
- 幼兒園睿思維培訓(xùn)
- 綠化工程造價(jià)培訓(xùn)
- 酒障病人的護(hù)理
- 2025年音樂產(chǎn)業(yè)音樂版權(quán)運(yùn)營(yíng)與音樂科技創(chuàng)新融合發(fā)展的技術(shù)創(chuàng)新報(bào)告
- 醫(yī)藥代表的臨床經(jīng)驗(yàn)分享
- 《大數(shù)據(jù)導(dǎo)論》期末考試復(fù)習(xí)題庫(kù)(含答案)
- 藝術(shù)家進(jìn)校園活動(dòng)安排計(jì)劃
- (電大)國(guó)開大學(xué)2024年秋《鑄牢中華民族共同體意識(shí)》試卷1-3參考答案
- 2025版國(guó)家開放大學(xué)法律事務(wù)專科《憲法學(xué)》期末考試總題庫(kù)
- 【MOOC】融合新聞:通往未來(lái)新聞之路-暨南大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- JGJT46-2024《施工現(xiàn)場(chǎng)臨時(shí)用電安全技術(shù)標(biāo)準(zhǔn)》條文解讀
- 防雷應(yīng)急演練方案
- 半結(jié)構(gòu)化面試題100題
- 第三章更好統(tǒng)籌發(fā)展和安全的途徑和方法-國(guó)家安全教育大學(xué)生讀本教案
- 房屋及相關(guān)設(shè)施零星維修工程施工方案
評(píng)論
0/150
提交評(píng)論