999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式系統中無字庫卡的漢字網絡打印的實現

2011-12-31 00:00:00栗明栗科峰
科教導刊 2011年18期

摘要本文介紹了在嵌入式系統下,使用PCL指令集將漢字的點陣數據通過網絡通信接口發送給無硬件字庫卡的網絡打印機,以實現漢字字符打印的方法。

關鍵詞 字庫卡 漢字 網絡打印

中圖分類號:TP391.1文獻標識碼:A

Implementation The Window Widgets in the Embedded Graphics Library

LI Ming, LI Kefeng

(He'nan Academy of Engineering, Zhengzhou, He'nan 450000)

AbstractThe article describes the embedded system, using the PCL command set to the dot matrix character data sent to network printerwithout hardware font card , through the network communication interface, to achieve the method of Chinese character printing.

Key wordsfont card; Chinese character; network printing

0 前言

目前,市面上的打印機大多配置有硬件字庫卡,但帶字庫卡的打印機比不帶字庫卡的打印機價格高很多,因此,在嵌入式系統作為終端的設備中,且打印格式固定的情況下,可以采用不帶字庫卡的打印機,使用打印機語言實現漢字字符的打印。

不同的打印機所采用的打印指令集,打印機通過接收來自嵌入式系統終端的控制命令來完成打印操作。本文主要說明的如何使用PCL指令集對帶有網絡服務端的HP激光打印機編寫打印驅動程序。

1 基本思路

在嵌入式系統中,讀取點陣字庫,獲取漢字的點陣數據的字模,然后通過PCL指令集,組織需要打印的漢字數據,通過網絡命令發送到不帶硬件字庫卡的激光打印機的網絡服務端,網絡打印機接收到打印指令后,實現打印操作。

表1

2 PCL指令集

PCL ( Printer Command Language )是 HP 針對打印機產品推出的一種打印頁面描述語言,PCL打印機語言為各種應用程序提供一種經濟適用的方法,控制打印機的各種打印功能。

PCL 打印機語言提供了使用打印機功能的方式,通常有四種:控制代碼、 PCL命令、HP-GL/2 命令、PJL 命令。其中,控制代碼是啟動某個打印機功能的字符,如回車(CR)、換行(LF)、換頁(FF)等等。PCL命令可提供對打印機PCL 控制結構的訪問。PLC指令集有固定格式,一個PCL命令由兩個以上的字符構成。表一中列舉了常用的PCL控制命令。

3 漢字字模

在標準漢字庫中,漢字編碼是以機內碼的形式存在的,每個漢字由兩個字節組成,因此漢字區位碼與機內碼的換算關系為:

區碼 = 漢字機內碼第一個字節 - 128 - 32= 漢字機內碼第一個字節 - 0xA0,

位碼 = 漢字機內碼第二個字節 - 128 - 32= 漢字機內碼第二個字節 - 0xA0,

這樣,點陣數據在字庫文件中的偏移 = ((區碼-1) * 94 + 位碼-1) *一個點陣字模占用的字節數。在得到偏移地址后,即可讀取漢字的點陣數據到緩沖區。

以下是根據機內碼獲取16*16漢字的點陣數據的實現代碼:

unsignedint * get_hz_bit(char hz[2])

{

char* hzBuf[100];/*定義字模存儲緩沖區*/

intqh,wh;

intoffset;

FILE* fp;

qh = hz[0]-0xA0;/*獲取區位碼*/

wh = hz[1]-0xA0;

offset = ((qh-1)*94+wh-1)*32;/*獲取漢字在字庫中的偏移量*/

fp=fopen(\"HZK16\",\"r\");

fseek(fp,offset,SEEK_SET);/*根據偏移量尋址*/

fread(hzBuf,1,32,fp);/*讀取點陣數據*/

fclose(fp);

return hzBuf;

}

4 網絡發送

Hp打印機的內置打印服務器作為服務端,在9100端口上偵聽、接收網絡上的打印數據,處理后通過打印機接口送至打印機,實現數據打印。本文中采用TCP/IP協議中的socket套接字接口來實現網絡數據的發送。

創建套接字—socket()

int socket(int af, int type, int protocol);

參數af為地址族,設置為AF_INET。參數type為要創建的套接字類型,設置為流模式SOCK_STREAM。Protocol通信協議類型,通常默認為0。

建立套接字連接──connect()

int connect (int sockfd,struct sockaddr * serv_addr,int addrlen);

參數sockfd為socket()返回的套接字描述符。結構sockaddr_in指定了協議族、服務器IP、服務器端口。

部分實現代碼如下:

serv_Size = sizeof (struct sockaddr_in);

memset ((char *) serv_Addr, 0,serv_Size);

serv_Addr.sin_family = AF_INET;

serv_Addr.sin_port = htons (9100);

serv_Addr.sin_addr.s_addr = inet_addr(\"192.168.0.110\");

sock=socket(AF_INET,SOCK_STREAM,0);

if (connect(sock, (struct sockaddr *) clientAddr, clientSize)==OK)

{

if((num=send(sock, print_Buf, sbuffer,0))==ERROR)

{

close(sock);

return(ERROR);

}

}

else

{

close(sock);

return(ERROR);

}

5 結束語

在具體的驅動編程中,需要設置使用PCL設置打印機控制參數,然后將要PCL指令和打印字的漢字字符串放在一個較大的數據緩沖區中,通過socket套接字發送至打印機服務端就可以了。本文來源于一次工程項目,打印驅動在設備上運行良好。

參考文獻

[1]惠普公司. PCL 5 Printer LanguageTechnicalReference Manual. 1994修訂版.

[2]王士元.C作圖與C漢字技術.天津大學出版社,1995.

[3]詹俊鵠,于衛.實戰Linux Socket 編程.西安電子科技大學出版社,2002.

“本文中所涉及到的圖表、公式、注解等請以PDF格式閱讀”

主站蜘蛛池模板: 中文精品久久久久国产网址 | 丰满的少妇人妻无码区| 天堂久久久久久中文字幕| 国产成人av一区二区三区| 免费jjzz在在线播放国产| 亚洲欧美精品日韩欧美| 男人天堂亚洲天堂| 国产va在线观看免费| 青草国产在线视频| 99青青青精品视频在线| 日本一本正道综合久久dvd| 欧美中文字幕在线二区| 毛片在线播放网址| 日本欧美在线观看| 国产91高清视频| 美女无遮挡免费网站| 欧美一区精品| 亚洲综合狠狠| 国产女人水多毛片18| 国产精品3p视频| 播五月综合| 伊人色综合久久天天| 美女裸体18禁网站| 国产剧情伊人| 日本少妇又色又爽又高潮| 国产区精品高清在线观看| 青青青国产免费线在| 欧美成人a∨视频免费观看| 国产AV毛片| 亚洲欧美日韩精品专区| 天天躁夜夜躁狠狠躁图片| 亚洲欧美在线看片AI| 波多野吉衣一区二区三区av| 成人国产一区二区三区| 久久中文无码精品| 97国产在线视频| 免费不卡视频| 国产靠逼视频| 免费无码AV片在线观看国产| 日韩精品亚洲人旧成在线| 欧美成人看片一区二区三区| 国产精品一区二区不卡的视频| 在线播放91| 国产浮力第一页永久地址| 一本一道波多野结衣一区二区| 亚洲综合在线最大成人| 免费国产一级 片内射老| 国产精品冒白浆免费视频| 亚洲精品无码在线播放网站| 国产精品久久久久无码网站| AV无码一区二区三区四区| 国产日韩av在线播放| 国产亚洲美日韩AV中文字幕无码成人 | 欧美成人影院亚洲综合图| 国产视频 第一页| 国产人妖视频一区在线观看| 日韩精品久久无码中文字幕色欲| 久久永久免费人妻精品| 中国一级特黄视频| 国产亚洲精品91| 欧美日韩中文国产| 亚洲精品无码久久久久苍井空| 婷婷亚洲视频| 亚洲一区二区三区在线视频| 精品福利一区二区免费视频| 国产在线精彩视频二区| 99热这里都是国产精品| 亚洲欧美精品日韩欧美| 日韩最新中文字幕| 国产精品美女免费视频大全| 高清无码不卡视频| 色精品视频| 国产精品妖精视频| 免费人欧美成又黄又爽的视频| 9丨情侣偷在线精品国产| 91九色最新地址| 国产精品第页| 一本视频精品中文字幕| 亚洲永久免费网站| 在线观看精品国产入口| 天堂成人在线| 91在线一9|永久视频在线|