【技术实现步骤摘要】
利用嵌入式系统中9针打印机打印二维码的方法和装置
本专利技术涉及二维码打印
,尤其涉及一种利用嵌入式系统中9针打印机打印二维码的方法和装置。
技术介绍
二维码相比于一维条形码具有信息容量大、保密性高、抗损性强、备援性大等优点,因此近些年来在各类商业表单、票据、证件等领域有广泛的应用,可以说如今二维码的应用已经在生活中无处不在。嵌入式系统在近年飞速发展,它以其便捷性、成本低等特点在很多使用环境下具有比台式电脑更广的适用性。基于上述背景,若能在一个系统资源比较缺乏的中低端嵌入式环境下打印二维码,将会在很多领域的应用中具有优势。嵌入式系统所使用的打印机,多采用比较小巧便宜的热敏或者9针打印机。其中热敏打印机因为打印内容无法长时间保存,故不适合用于诸如发票打印一类的领域。9针打印机的问题主要是打印分辨率低(一般横向(160dpi,纵向(144dpi ),且横纵向分辨率不同,当对二维码的信息容量要求较大时,在满足可识读的情况下9针打印机打印出二维码的面积也会增加的较大,致使无法满足很多场合下的应用需求。现有技术中的一种解决9针打印机打印二维码面积过大的问题的方法为:使用图像处理类的标准算法对二维码图像进行处理后,再将二维码图像由9针打印机打印。该方法的缺点为:该方法所需要的算法库往往比较庞大复杂,不适合向中低端嵌入式系统移植。
技术实现思路
本专利技术的实施例提供了一种利用嵌入式系统中9针打印机打印二维码的方法和装置,以实现用9针打印机有效地打印二维码。一种利用嵌入式系统中9针打印机打印二维码的方法,包括:根据9针打印机的打印区域尺寸和打印分辨率, ...
【技术保护点】
一种利用嵌入式系统中9针打印机打印二维码的方法,其特征在于,包括:根据9针打印机的打印区域尺寸和打印分辨率,计算出需要打印的二维码的逻辑矩阵的每个矩形单元对应的打印点数,所述逻辑矩阵的每个矩形单元代表了所述二维码中的一个基本单元;根据所述逻辑矩阵的每个矩形单元对应的打印点数,利用位图数据结构将所述逻辑矩阵的每个矩形单元映射到9针打印机的打印像素矩阵的对应矩阵单元,从而将所述逻辑矩阵转换为9针打印机的打印像素矩阵;根据所述9针打印机的命令格式,将所述9针打印机的打印像素矩阵转换为打印机的字节流。
【技术特征摘要】
1.一种利用嵌入式系统中9针打印机打印二维码的方法,其特征在于,包括: 根据9针打印机的打印区域尺寸和打印分辨率,计算出需要打印的二维码的逻辑矩阵的每个矩形单元对应的打印点数,所述逻辑矩阵的每个矩形单元代表了所述二维码中的一个基本单元; 根据所述逻辑矩阵的每个矩形单元对应的打印点数,利用位图数据结构将所述逻辑矩阵的每个矩形单元映射到9针打印机的打印像素矩阵的对应矩阵单元,从而将所述逻辑矩阵转换为9针打印机的打印像素矩阵; 根据所述9针打印机的命令格式,将所述9针打印机的打印像素矩阵转换为打印机的字节流。2.根据权利要求1所述的利用嵌入式系统中9针打印机打印二维码的方法,其特征在于,所述的根据9针打印机的打印区域尺寸和打印分辨率,计算出需要打印的二维码的逻辑矩阵的每个矩形单元对应的打印点数,包括: 设所述9针打印机的打印区域尺寸为P*Q,所述逻辑矩阵的行列数为M*N,所述九针打印机打印的横向最小点距为dpx,纵向打印针距为dpy, 横向上所述逻辑矩阵的每个矩形单元对应的打印针数为 x=P/M/dpx, 纵向上所述逻辑矩阵的每个矩形单元对应的打印针数为 y=Q/N/(dpy/2)03.根据权利要求2所述的利用嵌入式系统中9针打印机打印二维码的方法,其特征在于,所述的方法还包括: 当所述X或I不为整数时,则每隔i个矩形单元多打一点或少打一点,所述i的算法为:设 round (X)为对 x 的四舍五入运算,若 round (x) <x 时,i=round( l/(x-round (x) ))-1,此时为每打i个X点的矩形单元后,打一个x+1点的矩形单元; ground(x) > x 时,i=round (I/ (round (χ)-χ))-1,此时为每打 i 个χ 点的矩形单元后,打一个x-Ι点的矩形单元。4.根据权利要求3所述的利用嵌入式系统中9针打印机打印二维码的方法,其特征在于,所述的根据所述逻辑矩阵的每个矩形单元对应的打印点数,利用位图数据结构将所述逻辑矩阵的每个矩形单元映射到9针打印机的打印像素矩阵的对应矩阵单元,从而将所述逻辑矩阵转换为9针打印机的打印像素矩阵,包括: 构建所述9针打印机的打印像素矩阵,该打印像素矩阵中的每个矩阵单元对应9针打印机的一个打印点; 设置位图数据结构的具体接口为:void(*write) (void*pHandle, int row, int col,int value),其中,pHandle表示位图数据结构指针,row表示位图元素行坐标,col表示位图元素列坐标,value表示位图元素值,为O或I ; 通过所述位图数据结构将逻辑矩阵中的每个矩形单元映射成x*y个位点,将该x*y个位点按照所述位图数据结构中包含的行、列坐标值填充到打印像素矩阵中相应的x*y个矩形单元,通过这种方式遍历逻辑矩阵中的每个矩形单元,并按坐标逐个填充到打印像素矩阵中的对应矩形单元,从而实现逻辑矩阵转换成打印像素矩阵。5.根据权利要求1至4任一项所述的利用嵌入式系统中9针打印机打印二维码的方法,其特征在于,所述的根据所述9针打印机的命令格式,将所述9针打印机的打印像素矩阵转换为打印机的字节流,包括: 设所述打印像素矩阵的行和列为S*P,按照从左往右的顺序将所述打印像素矩阵的每一纵列的第I位到第T位逐个取值,一直到将所述打印像素矩阵的所有纵列都取值,形成9针打印机输入字节流的第O字节、1字节、2字节、、、一直到第P-1字节,所述T小于所述S ;按照从左往右的顺序将所述打印像素矩阵的每一纵列的第T+1位到第2T位逐个取值,一直到将所述打印像素矩阵的所有纵列都取值,形成9针打印机输入字节流的第P字节、第P+1字节、第P+2字节、、、一直到第2P-1字节; 重复执行上述处理过程,一直到将所述打印像素矩阵的所有行和列都取值,在每个字节的空位的地方填充O; 通过一维字节型数组来存储...
【专利技术属性】
技术研发人员:陈懿,陈皓,聂慧萍,张磊,高阳,张亚明,黄海东,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。