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格式閱讀”

主站蜘蛛池模板: 亚洲另类色| 日韩欧美国产区| 成人a免费α片在线视频网站| 亚洲欧洲日韩综合| 九色在线观看视频| 中国特黄美女一级视频| 99在线观看视频免费| 亚洲一本大道在线| 久久人体视频| 色综合手机在线| 青青青视频91在线 | 美女无遮挡拍拍拍免费视频| 日韩精品免费一线在线观看| 欧美日本一区二区三区免费| 日本91在线| 国产簧片免费在线播放| 玩两个丰满老熟女久久网| 成年人久久黄色网站| 91精品国产无线乱码在线| 日本在线亚洲| 欧美一级特黄aaaaaa在线看片| 噜噜噜综合亚洲| 久久这里只有精品2| 亚洲第一中文字幕| 精品国产一区二区三区在线观看| 久热这里只有精品6| 亚洲精品卡2卡3卡4卡5卡区| 亚洲欧美人成电影在线观看| 国产丝袜精品| 精品成人一区二区| 欧美成在线视频| 激情网址在线观看| 亚洲精品无码av中文字幕| 国语少妇高潮| 女人天堂av免费| 少妇高潮惨叫久久久久久| 高清欧美性猛交XXXX黑人猛交 | 亚洲美女操| 欧美在线导航| 色综合天天娱乐综合网| 欧美性爱精品一区二区三区| 久久精品女人天堂aaa| 韩国v欧美v亚洲v日本v| 亚洲欧美另类视频| 四虎影院国产| 强乱中文字幕在线播放不卡| 看你懂的巨臀中文字幕一区二区| 五月天久久综合| 国产一区二区人大臿蕉香蕉| 九九久久99精品| 在线免费看片a| av色爱 天堂网| 久久激情影院| 狠狠色丁婷婷综合久久| 亚洲色图在线观看| 免费观看精品视频999| 一级毛片免费观看久| 日本福利视频网站| 亚洲精品无码日韩国产不卡| 操美女免费网站| 国产尹人香蕉综合在线电影| 手机在线免费不卡一区二| 老司机午夜精品网站在线观看| 亚洲狼网站狼狼鲁亚洲下载| 欧美一级在线播放| a级毛片一区二区免费视频| 亚洲成在线观看| 国产原创第一页在线观看| 精品一区二区三区自慰喷水| a国产精品| 亚洲欧洲天堂色AV| 日韩国产 在线| 亚洲成网777777国产精品| 91福利片| 激情无码视频在线看| 噜噜噜久久| 青青草一区二区免费精品| 综合久久五月天| 青青青国产在线播放| 欧美激情首页| 久久综合结合久久狠狠狠97色| 在线另类稀缺国产呦|