网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
非汉字系统下汉字的打印输出
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

[摘要]介绍了在无汉字字库的打印机上,无需启动汉字操作系统打印汉字的方法,并给出了非汉字系统下打印输出含有汉字的文本文件的实用VC++源程序。 [关键词]汉字打印,Zebra系列, VC++语言,24*24点阵字库,文本文件

  电脑用户中,有相当一部分用户的打印机不带汉字库,他们打印输出汉字的一般方法是,首先启动汉字操作系统,使汉字打印驱动程序驻留内存,再把含有汉字的文本文件送打印机输出,或特定格式的汉字文件经应用程序打印输出;这对于只是单一打印汉字文件,还是比较简单实用的,但有时在我们自编的应用程序中,只是要打印汉字,而不需要屏幕显示或键盘输入汉字,在汉字系统下运行应用程序时,会带来一些副作用,如汉字系统占用内存资源、使显示速度变慢等。若在西文状态下,使不带汉字库的打印机也能打印输出汉字,即可避免因启动汉字系统运行应用程序而带来的麻烦。

  笔者针对上述问题,经过分析研究Zebra打印机命令码,通过VC++语言编程,用矩阵转置的方法实现了西文状态下汉字的打印。

一、非汉字系统下汉字打印实现原理

  以目前拥有工业用户较多的Zebra系列打印机为例,说明汉字打印实现原理,汉字打印的字摸数据来源于UCDOS的24*24点阵字库。

  打印机为用户提供了自定义字符功能,标准字符存在打印机的ROM中,而用户自定义字符则存在打印机的RAM中或直接对内存进行操作。同时为了避免因文本文件中出现重复汉字或图形符号造成频繁读取字库而影响文本输出速度,我们直接对内存进行操作。对图像而言,由于占用内存较大,影响运行速度,所以放在RAM中。

  把汉字库字模点阵数据作为自定义字符的数据,在打印机的内存中生成自定义字符,再输出内存中的自定义字符,即可在打印机上打印汉字。

  打印机自定义下载字符命令为:

~DGd,t,w,data  其中~DG为设置打印机为下载图形模式;

d为储存图形的目标设备(内存地址);

t为图像总的字节数;

w为每行字节数;

data为ASSII为十六进制串图像定义。因24×24点阵打印一个字需要24×3=72个字节,所以在这里 t=72,w=3。

  选择打印字符集命令为:

^XGd,t,w  其中^XG 为打印字符集命令;

d为储存图形的目标设备(内存地址);

t为图像总的字节数;

w为每行字节数。

  由于24*24点阵打印字库字模数据的存贮序列是按列优先的顺序,每列的24点用连续的3个字节存储,其顺序是按字模的上中下排列,且每个字节的最高位在上、最低位在下;而Zebra系列打印机打印输出序列是按行优先的顺序打印的,因此字模数据的存贮序列矩阵需行列转置变换后才可送打印机打印。

二、汉字文本文件的打印

  利用上述原理,可以在自己应用程序中,实现在非汉字系统下,不带汉字库的打印机上(或带汉字库的打印机设置为英文方式)输出汉字。

  作为应用,用VC++语言编制一打印含有汉字的文本文件的程序

编程思路如下:置打印机为信函打印质量方式及每英寸10个字符,以使输出一个汉字和图形符号占两个字符位置,处理文本文件中的字串,当字串中遇到汉字时(连续两个字符的第一个字符 ASCII 码大于 175 且第二个字符ASCII码大于 160),读取UCDOS的24*24点阵汉字库HZK24S(宋体)或HZK24F(仿宋体) 或 HZK24K(楷体)或HZK24H(黑体)中该汉字对应的点阵数据,当字串中遇到图形符号时(连续两个字符ASCII码的第一个字符ASCII 码大于 160 小于176且第二个字符ASCII码大于 160),读取UCDOS的 24* 24 点阵图形符号库HZK24T中该图形符号对应的点阵数据,用文本方式或图形方式输出该汉字或图形符号,否则输出原字符。

根据以上理解,得出如下读取汉字字模的算法:

如前面所述,汉字以字模的形式储存于字库中,每个汉字在字库中有唯一的区位码与之对应,根据某一汉字的机内码可以确定其区

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号