CN103507448B - 打印控制方法及打印机 - Google Patents
打印控制方法及打印机 Download PDFInfo
- Publication number
- CN103507448B CN103507448B CN201210222146.1A CN201210222146A CN103507448B CN 103507448 B CN103507448 B CN 103507448B CN 201210222146 A CN201210222146 A CN 201210222146A CN 103507448 B CN103507448 B CN 103507448B
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- transverse compression
- expression formula
- dot array
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1894—Outputting the image data to the printing elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
- G06K15/18—Conditioning data for presenting it to the physical printing elements
- G06K15/1894—Outputting the image data to the printing elements
- G06K15/1898—Outputting the image data to the printing elements while adapting the order of the data to the printing elements' arrangement, e.g. row-to-column conversion
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Record Information Processing For Printing (AREA)
Abstract
本发明公开了一种打印控制方法及打印机。该打印控制方法包括:根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;获取原始点阵数据;按照横向压缩表达式对原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;电机每走m微步,打印压缩点阵数据中的一点行数据。通过本发明,使得在进行压缩打印时,既速度快、又省纸效果显著。
Description
技术领域
本发明涉及打印领域,具体而言,涉及一种打印控制方法及打印机。
背景技术
传统的打印系统通常采用两种数据处理方式进行打印,其中,第一种数据处理方式为打印信息生成设备(如计算机)生成点阵数据发送给打印机,由打印机直接打印点阵打印数据;第二种数据处理方式为由打印信息生成设备生成包括文字代码和各种排版指令在内的字符打印数据发送给打印机,打印机根据排版指令,如行间距、字符间距等对字符打印数据进行排版,按照文字代码查找保存在打印机非易失性存储器内的与文字代码对应的字符的点阵数据从而把字符打印数据转换成点阵打印数据。
近年来,随着节约环保意识的提高,用户要求打印机具有省纸功能,从而减少打印介质的消耗量。比如,减小打印介质的宽度,如把宽度为80mm的打印介质替换为宽度为56mm的打印介质,或者缩短打印介质的使用长度,如把原始打印长度为150mm打印数据打印在100mm长的打印介质上,或者同时减小打印介质的宽度和长度,如把原始打印宽度为80mm、打印长度为150mm的打印数据打印在实际宽度为56mm、长度为100mm的打印介质上。
为了实现上述目的,相关技术提供了一种打印控制方法,根据压缩比例,利用插值算法对原始点阵数据进行处理后打印。由于通过插值算法进行压缩打印,对打印质量要求越高,则对插值算法的计算精度要求就越高。但是,插值算法的计算精度越高,数据处理计算量越大,造成数据处理速度缓慢,从而影响打印速度。
为了实现上述目的,相关技术提供了一种打印控制方法,通过压缩字符的行间距或者字符的字间距节省打印纸。但是,该方法能够节约利用的长度和宽度有限,无法达到预期的省纸要求。
针对相关技术中在进行压缩打印时难以兼顾省纸和打印速度的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种打印控制方法及打印机,以解决相关技术中在进行压缩打印时难以兼顾省纸和打印速度的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种打印控制方法。该打印控制方法包括:步骤S1,根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;步骤S2,获取原始点阵数据;步骤S3,按照横向压缩表达式对原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;以及步骤S4,电机每走m微步,打印压缩点阵数据中的一点行数据。
进一步地,步骤S1中的根据横向压缩比获取横向压缩表达式包括:根据横向压缩比计算得到横向压缩表达式,或者,根据横向压缩比查表得到横向压缩表达式,其中,在表中存储有多个横向压缩比与多个横向压缩表达式的对应关系。
进一步地,根据横向压缩比运算得到横向压缩表达式包括根据以下公式计算横向压缩表达式中固定运算项和“或”运算项的项数:
p1+2*p2=r
p1+p2=r1
其中,p1为横向压缩表达式中固定运算项的项数,p2为横向压缩表达式中“或”运算项的项数,r1表示压缩后的数据量,r表示原始的数据量。
进一步地,根据横向压缩比查表得到横向压缩表达式包括:判断表中是否能够查找到横向压缩比;当表中能够查找到横向压缩比时,将查表得到的横向压缩比对应的横向压缩表达式作为横向压缩表达式;以及当表中无法查找到横向压缩比时,将表中与横向压缩比的数值相近的横向压缩比对应的横向压缩表达式作为横向压缩比对应的横向压缩表达式。
进一步地,步骤S3包括:以横向压缩表达式的数据长度为单位对原始点阵数据的每一点行数据进行分组,得到多个数据组;按照横向压缩表达式,对多个数据组进行压缩,生成多个压缩数据组;对多个压缩数据组进行组合,生成一点行的压缩数据;以及对所有点行的压缩数据进行组合,生成压缩点阵数据。
进一步地,步骤S3包括:对原始点阵数据中每一点行数据按照类型分区,得到多个数据区;按照横向压缩表达式,分别对多个数据区进行压缩,生成多个压缩数据区;对多个压缩数据区进行组合,生成一点行的压缩数据;以及对所有点行的压缩数据进行组合,生成压缩点阵数据。
为了实现上述目的,根据本发明的另一方面,提供了一种打印机。该打印机包括:第一获取单元,用于根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;第二获取单元,获取原始点阵数据;生成单元,按照横向压缩表达式对原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;以及打印单元,用于在电机每走m微步,打印压缩点阵数据中的一点行数据。
进一步地,第一获取单元用于通过以下方式获取横向压缩表达式:根据横向压缩比计算得到横向压缩表达式,或者,根据横向压缩比查表得到横向压缩表达式,其中,在表中存储有多个横向压缩比与多个横向压缩表达式的对应关系。
进一步地,第一获取单元还用于根据以下表达式计算横向压缩表达式中固定运算项和“或”运算项的项数:
p1+2*p2=r
p1+p2=r1
其中,p1为横向压缩表达式中固定运算项的项数,p2为横向压缩表达式中“或”运算项的项数,r1表示压缩后的数据量,r表示原始的数据量。
进一步地,第一获取单元根据横向压缩比查表得到横向压缩表达式包括:判断表中是否能够查找到横向压缩比;当表中能够查找到横向压缩比时,将查表得到的横向压缩比对应的横向压缩表达式作为横向压缩表达式;以及当表中无法查找到横向压缩比时,将表中与横向压缩比的数值相近的横向压缩比对应的横向压缩表达式作为横向压缩比对应的横向压缩表达式。
进一步地,生成单元用于按照以下方式生成压缩点阵数据:以横向压缩表达式的数据长度为单位对原始点阵数据的每一点行数据进行分组,得到多个数据组;按照横向压缩表达式,对多个数据组进行压缩,生成多个压缩数据组;对多个压缩数据组进行组合,生成一点行的压缩数据;以及对所有点行的压缩数据进行组合,生成压缩点阵数据。
进一步地,生成单元用于按照以下方式生成压缩点阵数据:对原始点阵数据中每一点行数据按照类型分区,得到多个数据区;按照横向压缩表达式,分别对多个数据区进行压缩,生成多个压缩数据区;对多个压缩数据区进行组合,生成一点行的压缩数据;以及对所有点行的压缩数据进行组合,生成压缩点阵数据。
为了实现上述目的,根据本发明的另一方面,提供了一种打印机。该打印机包括:步进电机;打印机构;以及控制器,与步进电机和打印机构分别相连接,用于根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;获取原始点阵数据;按照横向压缩表达式对原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;以及步进电机每走m微步,控制打印机构打印压缩点阵数据中的一点行数据。
通过本发明的打印控制方法或者打印机,由于先获取横向压缩表达式和行微步数,然后按照所述横向压缩表达式对原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据,以及以微步长方式控制电机旋转,并根据行微步数以行模式打印所述压缩点阵数据的每一点行数据,解决了相关技术中在进行压缩打印时难以兼顾省纸和打印速度的问题,进而达到了使得在压缩打印时,既速度快、又省纸效果显著的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明的打印机的第一实施例的组成示意图;
图2是根据本发明第一实施例的打印控制方法的流程图;
图3是根据本发明第一实施例的打印控制方法的横向压缩一点行数据的流程图;
图4是根据本发明第二实施例的打印控制方法的横向压缩一点行数据的流程图;
图5是根据本发明一实施例的打印控制方法的点阵数据横向压缩过程示意图;
图6是根据本发明第一实施例的打印控制方法的横向压缩点行数据的点行数据压缩过程示意图;
图7是根据本发明第二实施例的打印控制方法的横向压缩点行数据的点行数据压缩过程示意图;以及
图8是根据本发明的打印机的第二实施例的组成示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1是根据本发明的打印机的第一实施例的组成示意图,如图所示,打印机30包括控制器31、通信接口32、RAM存储器33、FLASH存储器34、电机驱动器35、步进电机36和打印机构37。其中,控制器31控制各模块执行工作,比如,控制器31控制通信接口32接收打印请求装置(如计算机或网络设备)发送的打印数据和压缩比设定指令,打印数据可以为点阵打印数据,也可以为包括文字代码和各种排版指令在内的字符打印数据,还可以为由图形指令定义的打印数据(简称图形打印数据),压缩比设定指令用于设定打印机的横向压缩比和纵向压缩比,当打印数据为字符打印数据或图像打印数据时,控制器31还把字符打印数据和图形打印数据转换为点阵打印数据,控制器31还控制打印机构37在介质上进行数据打印等。控制器31包括数据压缩单元311,用于根据横向压缩表达式以比特方式对原始点阵打印数据进行压缩,生成压缩点阵数据,原始点阵打印数据是打印请求装置发送给打印机的点阵打印数据或由打印请求装置发送给打印机的字符打印数据转换成的点阵打印数据;通信接口32,接收打印请求装置发送的打印数据和压缩比设定指令,并把接收的打印数据和压缩比设定指令保存在RAM存储器33中,常用的通信接口为USB接口、以太网接口等;RAM存储器33,包括接收缓冲区331和打印缓冲区332,其中,接收缓冲区331用于保存通信接口32所接收的打印数据和压缩比设定指令,打印缓冲区332用于保存要发送到打印机构37的压缩点阵数据;FLASH存储器(即非易失性存储器)34,用于保存字体数据库341,字体数据库341包括索引数据区和字体数据区,其中,索引数据区包括字符的字体数据的数据量(简称数据量)、字符的字体数据在字体数据区中的存储地址偏移量(简称地址偏移量)等,字体数据区存储有各个字符的字体数据,获取字符的字体数据时,首先根据字符的文字代码在索引数据区中获取该字符的字体数据的数据量及其在字体数据区中的地址偏移量,然后根据地址偏移量在字体数据区中读取与该数据量对应的字体数据。比如,文字代码0x30对应字符“0”,在索引数据区中查找文字代码0x30的数据量和地址偏移量,如数据量为6(字节)、地址偏移量为0x1000,则在字体数据区中从地址0x1000~0x1005共6字节的数据为字符“0”的字体数据。FLASH存储器34还用于保存优选横向压缩比与优选横向压缩表达式的对应关系表,如横向压缩比为r1/r、字符字体数据为W×H点阵,其中,r1表示压缩后的数据量,r表示原始的数据量,r1、r的单位为比特,W表示字体数据宽度方向的点数,H表示字体数据高度方向的点数。当r为W的约数时的横向压缩比为优选横向压缩比,如字符的字体数据为12×24点阵,即W=12,则当r为12的约数,如r=3、4、6或12时的横向压缩比均为优选横向压缩比,如横向压缩比2/3、3/4、5/6、7/12等均为优选横向压缩比;横向压缩表达式为多项式,包括两种运算项,分别是固定运算项和“或”运算项,其中,固定运算项表示与该运算项对应的比特不变,或运算项表示与该运算项对应的相邻两比特数据进行“或”运算,如横向压缩表达式为b1+b2|b3,其中,b1、b2、b3为按顺序排列的比特数据,则b1为固定运算项,即第一比特数据不变,b2|b3为或运算项,“|”表示或运算符,即第二比特数据和第三比特数据进行“或”运算,横向压缩表达式中的进行运算的数据位的数量,即比特数,为横向压缩表达式的数据长度,通常以L表示,如横向压缩表达式为b1+b2|b3,则对b1至b3共3位数据进行运算,即该横向压缩表达式的数据长度L=3,再比如,横向压缩表达式为b1+b2+b3+b4+b5|b6,则对b1至b6共6位数据进行运算,因此该横向压缩表达式的数据长度L=6,与优选横向压缩比对应的横向压缩表达式为优选横向压缩表达式,如优选横向压缩比为2/3,则与优选横向压缩比2/3对应的横向压缩表达式b1+b2|b3为优选横向压缩表达式;电机驱动器35,用于给步进电机36提供驱动电流以使步进电机旋转,步进电机的驱动方式包括全步长方式和微步长方式,其中,全步长方式为电机按照初始步长进行转动时的工作方式,微步长方式为电机按照微步长进行转动时的工作方式,其中,初始步长是未进行纵向压缩时的电机步长,微步长是把初始步长均分为n等份之后的电机步长,也就是微步长是初始步长的1/n,通常对初始步长的电机步进角(简称初始步进角)进行等分,如2等分,在2等分基础上再进行等分等,因此,优选地,n为2的多次方,即对初始步进角进行2的多次方等分;步进电机36,用于驱动介质运动,设步进电机以微步长方式工作时电机每走一个微步介质移动距离为d1,步进电机以全步长方式工作时电机每走一步介质移动距离为d2,则d1=d2/n;打印机构37包括打印头,打印头用于把转换后的压缩点阵数据打印在介质上,从而在介质上生成文字和图像。打印头为行式打印头,一次打印一点行数据,常用的行式打印头为热打印头,包括多个发热单元,多个发热单元等距排列成一行,一个发热单元与点行数据中的一点数据(即1比特)相对应,当点数据为第一设定数据时,如“1”,其对应的发热单元发热,从而在打印介质上形成一个点,当点数据为第二设定数据时,如“0”,其对应的发热单元不发热,在打印介质上没有打印输出。
图2是根据本发明实施例的打印控制方法的流程图,具体处理过程如下:
步骤S1,根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m
控制器31对保存在接收缓冲区331中的压缩比设定指令进行解析,得到横向压缩比r1/r,其中,r1、r均为正整数,并且r>r1>r/2,如原始打印宽度为80mm,压缩后打印宽度为56mm,则横向压缩比r1/r=7/10(即56/80)。
得到横向压缩比r1/r后,可以通过运算得到横向压缩表达式,也可以通过查表得到横向压缩表达式。其中,根据横向压缩比r1/r通过运算得到横向压缩表达式的过程如下:
根据下面的表达式一和表达式二计算横向压缩表达式中固定运算项和“或”运算项的项数。
p1+2*p2=r(表达式一)
p1+p2=r1(表达式二)
通过对以上两个等式进行处理,得到:p1=2*r1-r;p2=r-r1。
其中,p1为横向压缩表达式中固定运算项的项数,p2为横向压缩表达式中“或”运算项的项数。
如把使用的打印介质从80mm宽变为56mm宽,即打印宽度由原始打印宽度80变为压缩后的打印宽度56,则横向压缩比r1/r=7/10(即56/80),也就是需要在横向上把原始数据中的10个点压缩为7个点;根据表达式一和表达式二,计算得到p1=4,p2=3,即横向压缩表达式中固定运算项的项数为4、“或”运算项的项数为3,对应原始数据b1至b10,其横向压缩表达式可以是b1+b2+b3+b4+b5|b6+b7|b8+b9|b10,其中,b1、b2、b3、b4为固定运算项,b5|b6、b7|b8、b9|b10为“或”运算项;优选地,横向压缩表达式中的固定运算项和“或”运算项相间隔,并且均匀分布,则得到优化的横向压缩表达式,如b1+b2|b3+b4+b5|b6+b7+b8|b9+b10,其中,b1、b4、b7、b10为固定运算项,b2|b3、b5|b6、b8|b9为“或”运算项。
根据横向压缩比r1/r通过查表得到横向压缩表达式的过程如下:
根据横向压缩比r1/r,对保存在FLASH存储器23中的优选横向压缩比与优选横向压缩表达式的对应关系表进行查表,在“优选横向压缩比”列中查找与横向压缩比r1/r相对应的横向压缩表达式。
表1为W=12(字符的点阵数据为12×24)时的优选横向压缩比和优选横向压缩表示式的对应关系表,下面以横向压缩比为5/6和7/10分别为例说明查表过程。
优选横向压缩比 | 优选横向压缩表达式 |
11/12 | b1+b2+b3+b4+b5|b6+b7+b8+b9+b10+b11+b12 |
5/6 | b1+b2+b3+b4+b5|b6 |
3/4 | b1+b2+b3|b4 |
2/3 | b1+b2|b3 |
7/12 | b1+b2|b3+b4|b5+b6|b7+b8+b9|b10+b11|b12 |
表1
在表1中的“优选横向压缩比”列中查找到5/6项,其位于第三行,则在第三行中“优选横向压缩表达式”列对应的表达式:b1+b2+b3+b4+b5|b6就是要查找的横向压缩表达式。
在表1中的“优选横向压缩比”列中查找到7/10项时,在“优选横向压缩比”列中未查找到7/10项,则查找与7/10的数值相近的项,如项2/3和项3/4,可以选择其中的任意一项;优选地,选择数值更小的优选横向压缩比,如选择2/3,从而可以得到横向压缩比为7/10时的横向压缩表达式为b1+b2|b3。
控制器31对保存在接收缓冲区331中的压缩比设定指令进行解析,得到纵向压缩比s1/s,其中,s1、s均为正整数,并且s>s1,如原始打印长度为80mm,压缩后的打印长度为56mm,则纵向压缩比s1/s=7/10(即56/80)。需要说明的是,为了避免打印文字或图像比例失调,通常情况下横向压缩比与纵向压缩比相等。
根据纵向压缩比s1/s及初始步长的微步数量n,计算纵向压缩打印时打印一点行压缩数据时电机所走的微步数m,其中,m=(n*s1)/s,如一个初始步长步等分为16个微步,则初始步长的微步数量n=16,如一个初始步长步等分为8个微步,则初始步长的微步数量n=8。
当m不为整数时,由于电机的步进数只能为整数,即m不能为小数,则需要对m进行整数化处理使其变为整数;优选地,m为其取整后的数值,相对于纵向压缩比s1/s新的压缩比m/n的数值变小了,从而提高了纵向的数据压缩率。
以s1/s为7/10,n等于8为例说明,如何求得m的数值。由于m=(8*7)/10,即m为小数5.6,则m既可以为整数5也可以为整数6,优选地,m等于5,即纵向压缩比从较大数值的7/10变为较小数值的5/8,从而提高了纵向压缩率,减小了所使用介质的长度,从而减少了介质的使用量。
步骤S2,获取原始点阵数据
控制器31对保存在接收缓冲区331中的打印数据进行处理,当接收的打印数据为点阵打印数据时,则接收的点阵打印数据即为原始点阵数据;当接收的打印数据为字符打印数据时,则根据字符的文字代码在字体数据库341的索引数据区中查询该字符的字体数据的数据量和地址偏移量,根据地址偏移量在字体数据库341的字体数据区中读取与该数据量对应的字体数据,按照字符的接收顺序对字符的相应字体数据进行排列后生成原始点阵打印数据;当接收的打印数据为图像打印数据时,则解析图像打印数据中的图像指令并得到点阵方式的原始点阵数据。
步骤S3,按照横向压缩表达式对原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据
控制器31按照原始点阵数据的打印顺序,如图5所示,按照方向63所示的从上到下的顺序,首先对原始点阵打印数据60的第一点行数据64进行压缩,生成第一点行压缩数据84,然后,对第二点行数据进行压缩生成第二点行压缩数据,依次处理,直到把第i(图5中i等于24)点行数据压缩成第i点行压缩数据,则生成由第一点行压缩数据、第二点行压缩数据、…、第24点行压缩数据组成的压缩点阵数据80,并把生成的压缩点阵数据保存在RAM存储器33的打印缓冲区332中。
每一点行数据的压缩过程可以参考下面对图3或图4所示流程图的详细说明。
S4,电机每走m微步,打印压缩点阵数据中的一点行数据
以微步长方式控制电机旋转,电机每走m微步,打印一点行压缩数据。按照该种方式,依次打印压缩点阵数据的第一点行压缩数据、第二点行压缩数据、第三点行压缩数据,…,直到打印完压缩点阵数据的最后一点行压缩数据,由于电机初始步长的微步数量为n,因此,每点行数据的打印高度为步进电机以全步长方式工作时的m/n。
图3是根据本发明的第一实施例的打印控制方法的横向压缩一点行数据的流程图,具体处理过程如下:
步骤S311,对原始点阵数据的一点行数据进行分组
原始点阵数据由多点行数据组成,每一点行数据又由多个点数据组成,每一点数据对应一比特数据。根据横向压缩表达式的数据长度L,对原始点阵数据的一点行数据(简称为原始点行数据)中的点数据进行分组。以横向压缩表达式的数据长度L为单位对原始点行数据的点数据进行分组,共划分为N/L个数据组,其中,N为原始点行数据的比特数,依次生成第一数据组、第二数据组、…、第k数据组(k=N/L),如图6中的(b)所示,对图6中的(a)所示的一原始点行数据95进行分组,由于横向压缩表达式为b1+b2|b3,即L等于3,则把数据量为12比特的一行原始点行数据95共划分为4个(即12/3)数据组,分别为第一数据组、第二数据组、第三数据组和第四数据组。
步骤S312,按照横向压缩表达式,对每一个数据组进行压缩,生成相应的压缩数据组
如图6中(b)所示,按照横向压缩表达式b1+b2|b3对第一数据组、第二数据组、…、第四数据组进行压缩,分别生成如图6中(c)所示的第一压缩数据组、第二压缩数据组、…、第四压缩数据组,如图6中(b)所示,第一数据组为“110”,以横向压缩表达式b1+b2|b3对其进行压缩,则第1比特“1”不变,第2比特“1”和第3比特“0”进行“或”运算得到一比特的“1”,则把第一数据组“110”压缩为如图6中(c)所示的第一压缩数据组“11”。
步骤S313,对压缩数据组进行组合,生成点行压缩数据
按照原始点行数据的分组顺序,对压缩数据组进行组合,生成点行压缩数据,如如图6中(c)所示,对第一压缩数据组、第二压缩数据组、…、第四压缩数据组进行组合,生成如图6中(d)所示的点行压缩数据96,至此,则把图6(a)中95所示的原始点行数据“110110011000”压缩为如图6(d)中96所示的点行压缩数据“111101100”。
图4是根据本发明第二实施例的打印控制方法的横向压缩一点行数据的流程图,具体处理过程如下:
步骤S321,对原始点阵数据中一点行数据按照类型分区,得到多个数据区
按照数据属性的不同对原始点阵数据中的一点行数据中的点数据进行分类,如由字符的字体数据生成的点数据为字符类、由图像命令生成的点数据为图形类、…、由字符间隔形成的点数据为间隔类等,如图7(b)所示,将图7(a)所示的一行原始点行数据67的点数据划分为两类数据,分别为字符类数据91和间隔类数据92。
按照点数据的类型,以确定的顺序,如从左向右的顺序,对原始点行数据中的相邻点数据进行分区,划分为多个数据区,其中,每个数据区只能包括一种类型的数据,每个字符类数据区既可以包括由一个字符的点阵数据生成的点数据,也可以包括由多个连续的字符组成的点阵数据生成的点数据,同样地,每个图形类数据区既可以包括一个图形的点阵数据,也可以包括连续的多个图形组成的点阵数据,如图7(c)所示,原始点行数据67划分为八个数据区,分别为第一数据区、第二数据区、…、第八数据区,其中,第一数据区、第三数据区、第五数据区、第七数据区为字符类,第二数据区、第四数据区、第六数据区、第八数据区为间隔类。
步骤S322,按照横向压缩表达式,对每一个数据区进行压缩,生成相应的压缩数据区
按照横向压缩表达式,对图7(c)所示的第一数据区、第二数据区、…、第八数据区进行压缩,分别生成如图7(d)所示的第一压缩数据区、第二压缩数据区、…、第八压缩数据区。
步骤S323,对压缩数据区进行组合,生成点行压缩数据
按照原始点行数据的分区顺序,对压缩数据区进行组合,生成点行压缩数据,如图7(d)所示,对第一压缩数据区、第二压缩数据区、…、第八压缩数据区进行组合,生成如图7(e)所示的点行压缩数据87,至此,则把图7(a)中67所示的原始点行数据压缩为图7(e)中87所示的点行压缩数据。
本实施例通过对点行数据进行分类压缩,减小了横向压缩时不同类型数据之间的相互干扰,保持了每类数据的完整性,从而提高了横向压缩的打印效果。
本发明实施例还提供了一种打印机,如图8所示,该打印机包括第一获取单元301、第二获取单元302、生成单元303和打印单元304。
第一获取单元301用于根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m。
该第一获取单元301可以通过上述的控制器31和通信接口32来实现。
第二获取单元302获取原始点阵数据。
该第二获取单元302可以通过上述的通信接口32来实现,也可以通过单独设置的通信接口32来实现,或者,通过控制器31对打印机获取的字符打印数据转换得到。
生成单元303按照所述横向压缩表达式对所述原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据。
该生成单元303也可以通过上述的控制器31来实现。
打印单元304用于在电机每走m微步,打印压缩点阵数据中的一点行数据。
该打印单元304可以通过上述的控制器31、步进电机36和打印机构37来实现。
需要说明的是,本发明实施例的打印控制方法可以通过但不限于通过本发明实施例所提供的打印机来执行,本发明实施例的打印机可以用于执行本发明实施例所提供的打印控制方法。本发明实施例的打印机可以结合本发明实施例所提供的打印控制方法来理解,因而也可以用于执行本发明实施例的优选打印控制方法,在本实施例中,不再对第一获取单元301、第二获取单元302、生成单元303和打印单元304进行更优选的描述。
本发明实施例提供的打印控制方法或者打印机,根据横向压缩比得到横向压缩表达式,其中横向压缩表达式包括固定运算项和或运算项,根据纵向压缩比得到行微步数,利用横向压缩表达式对点行数据进行横向压缩后再打印,减少了字符行的宽度,从而减小使用介质的宽度;根据行微步数控制进纸电机以微步长方式进行点行数据打印,从而实现打印数据的纵向压缩,缩短了使用介质的长度。由于横向压缩表达式包括固定运算项和或运算项,通过固定运算项保留了文字字体的形状,减小了横向压缩对文字字体的影响,通过或运算项,有效减少了横向数据量,从而实现打印数据的横向压缩,以微步长方式控制电机移动来实现对打印数据的纵向压缩,不需要对打印数据在纵向上进行压缩,从而保证了文字等信息在纵向上的打印质量,因此,通过简单的运算就可以实现原始打印数据在横向和纵向上的压缩打印效果。本发明提供的打印控制方法,由于数据处理量少,因此,在保证打印质量的情况下不会影响打印机的打印速度。进一步地,按照点数据的类型对点行数据中的点数据进行分区、压缩,保证了不同类型数据的压缩一致性,消除了对不同类型的点数据进行压缩时的相互影响,保证了文字、图像等的完整性。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1.一种打印控制方法,其特征在于,包括:
步骤S1,根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;
步骤S2,获取原始点阵数据;
步骤S3,按照所述横向压缩表达式对所述原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;以及
步骤S4,电机每走所述m微步,打印所述压缩点阵数据中的一点行数据。
2.根据权利要求1所述的打印控制方法,其特征在于,所述步骤S1中的根据横向压缩比获取横向压缩表达式包括:
根据所述横向压缩比计算得到所述横向压缩表达式,或者,
根据所述横向压缩比查表得到所述横向压缩表达式,其中,在所述表中存储有多个横向压缩比与多个横向压缩表达式的对应关系。
3.根据权利要求2所述的打印控制方法,其特征在于,根据所述横向压缩比运算得到所述横向压缩表达式包括根据以下公式计算所述横向压缩表达式中固定运算项和“或”运算项的项数:
p1+2*p2=r
p1+p2=r1
其中,p1为所述横向压缩表达式中固定运算项的项数,p2为所述横向压缩表达式中“或”运算项的项数,r1表示压缩后的数据量,r表示原始的数据量。
4.根据权利要求2所述的打印控制方法,其特征在于,根据所述横向压缩比查表得到所述横向压缩表达式包括:
判断所述表中是否能够查找到所述横向压缩比;
当所述表中能够查找到所述横向压缩比时,将查表得到的横向压缩比对应的横向压缩表达式作为所述横向压缩表达式;以及
当所述表中无法查找到所述横向压缩比时,将所述表中与所述横向压缩比的数值相近的横向压缩比对应的横向压缩表达式作为所述横向压缩比对应的横向压缩表达式。
5.根据权利要求1所述的打印控制方法,其特征在于,所述步骤S3包括:
以所述横向压缩表达式的数据长度为单位对所述原始点阵数据的每一点行数据进行分组,得到多个数据组;
按照所述横向压缩表达式,对所述多个数据组进行压缩,生成多个压缩数据组;
对所述多个压缩数据组进行组合,生成一点行的压缩数据;以及
对所有点行的压缩数据进行组合,生成所述压缩点阵数据。
6.根据权利要求1所述的打印控制方法,其特征在于,所述步骤S3包括:
对所述原始点阵数据中每一点行数据按照类型分区,得到多个数据区;
按照所述横向压缩表达式,分别对所述多个数据区进行压缩,生成多个压缩数据区;
对所述多个压缩数据区进行组合,生成一点行的压缩数据;以及
对所有点行的压缩数据进行组合,生成所述压缩点阵数据。
7.一种打印机,其特征在于,包括:
第一获取单元,用于根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;
第二获取单元,获取原始点阵数据;
生成单元,按照所述横向压缩表达式对所述原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;以及
打印单元,用于在电机每走所述m微步,打印所述压缩点阵数据中的一点行数据。
8.根据权利要求7所述的打印机,其特征在于,所述第一获取单元用于通过以下方式获取所述横向压缩表达式:
根据所述横向压缩比计算得到所述横向压缩表达式,或者,
根据所述横向压缩比查表得到所述横向压缩表达式,其中,在所述表中存储有多个横向压缩比与多个横向压缩表达式的对应关系。
9.根据权利要求8所述的打印机,其特征在于,所述第一获取单元还用于根据以下表达式计算所述横向压缩表达式中固定运算项和“或”运算项的项数:
p1+2*p2=r
p1+p2=r1
其中,p1为所述横向压缩表达式中固定运算项的项数,p2为所述横向压缩表达式中“或”运算项的项数,r1表示压缩后的数据量,r表示原始的数据量。
10.根据权利要求8所述的打印机,其特征在于,所述第一获取单元根据所述横向压缩比查表得到所述横向压缩表达式包括:
判断所述表中是否能够查找到所述横向压缩比;
当所述表中能够查找到所述横向压缩比时,将查表得到的横向压缩比对应的横向压缩表达式作为所述横向压缩表达式;以及
当所述表中无法查找到所述横向压缩比时,将所述表中与所述横向压缩比的数值相近的横向压缩比对应的横向压缩表达式作为所述横向压缩比对应的横向压缩表达式。
11.根据权利要求7所述的打印机,其特征在于,所述生成单元用于按照以下方式生成所述压缩点阵数据:
以所述横向压缩表达式的数据长度为单位对所述原始点阵数据的每一点行数据进行分组,得到多个数据组;
按照所述横向压缩表达式,对所述多个数据组进行压缩,生成相应的压缩数据组;
对所述多个压缩数据组进行组合,生成一点行的压缩数据;以及
对所有点行的压缩数据进行组合,生成所述压缩点阵数据。
12.根据权利要求7所述的打印机,其特征在于,所述生成单元用于按照以下方式生成所述压缩点阵数据:
对所述原始点阵数据中每一点行数据按照类型分区,得到多个数据区;
按照所述横向压缩表达式,分别对所述多个数据区进行压缩,生成多个压缩数据区;
对所述多个压缩数据区进行组合,生成一点行的压缩数据;以及
所有点行的压缩数据进行组合,生成所述压缩点阵数据。
13.一种打印机,其特征在于,包括:
步进电机(36);
打印机构(37);以及
控制器(31),与所述步进电机(36)和所述打印机构(37)分别相连接,用于根据横向压缩比获取横向压缩表达式,根据纵向压缩比获取行微步数m;获取原始点阵数据;按照所述横向压缩表达式对所述原始点阵数据的每一点行数据进行压缩,生成压缩点阵数据;以及步进电机(36)每走所述m微步,控制所述打印机构(37)打印所述压缩点阵数据中的一点行数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222146.1A CN103507448B (zh) | 2012-06-29 | 2012-06-29 | 打印控制方法及打印机 |
PCT/CN2013/078131 WO2014000659A1 (zh) | 2012-06-29 | 2013-06-27 | 打印控制方法及打印机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222146.1A CN103507448B (zh) | 2012-06-29 | 2012-06-29 | 打印控制方法及打印机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103507448A CN103507448A (zh) | 2014-01-15 |
CN103507448B true CN103507448B (zh) | 2016-08-03 |
Family
ID=49782257
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210222146.1A Active CN103507448B (zh) | 2012-06-29 | 2012-06-29 | 打印控制方法及打印机 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103507448B (zh) |
WO (1) | WO2014000659A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199625B (zh) * | 2014-09-17 | 2017-04-26 | 贵州京洲电子发展有限公司 | 一种将打印数据转换输出的方法、装置及系统 |
CN104924793B (zh) * | 2015-06-16 | 2017-09-19 | 深圳市新国都支付技术有限公司 | Pos终端兼容各类收银设备小票信息打印的方法 |
CN106610802B (zh) * | 2016-12-15 | 2019-08-09 | 国网江苏省电力公司淮安供电公司 | 保护装置用虚拟打印机的点阵图图像文件构建及存储方法 |
CN110879513B (zh) * | 2019-12-17 | 2024-07-23 | 珠海奔图电子有限公司 | 纸张搬送控制方法、装置,图像形成装置、系统和电子设备 |
CN111352595B (zh) * | 2020-02-20 | 2022-11-08 | 容大合众(厦门)科技集团股份公司 | 一种热敏打印机的点行压缩方法 |
CN111923599B (zh) * | 2020-09-18 | 2021-02-26 | 季华实验室 | 喷头模组步长计算方法、设备、存储介质和喷墨打印机 |
CN112130782A (zh) * | 2020-09-22 | 2020-12-25 | 上海汉图科技有限公司 | 一种打印方法、装置和打印客户端 |
WO2022226960A1 (zh) * | 2021-04-30 | 2022-11-03 | 深圳市博思得科技发展有限公司 | 一种走纸精度校准方法及校准系统 |
CN113535099B (zh) * | 2021-05-08 | 2024-01-02 | 南京富士通电子信息科技股份有限公司 | 打印头驱动方法及装置、存储介质、电子装置 |
CN113177880B (zh) * | 2021-05-21 | 2024-08-20 | 中山市三藏电子科技有限公司 | 应用于打印机的位图转换方法和打印机 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4365273A (en) * | 1979-11-05 | 1982-12-21 | Dainippon Screen Seizo Kabushiki Kaisha | Picture data compressing method |
CN1143928A (zh) * | 1994-11-29 | 1997-02-26 | 株式会社吉姆帝王 | 带式打印装置 |
CN1967569A (zh) * | 2006-11-27 | 2007-05-23 | 中外合资南京富士通计算机设备有限公司 | 针式打印机页面压缩处理方法 |
CN102407683A (zh) * | 2010-09-26 | 2012-04-11 | 江门市得实计算机外部设备有限公司 | 打印机的无级变倍打印控制方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6081277A (en) * | 1995-09-28 | 2000-06-27 | Sony Corporation | Apparatus and method for controlling image display |
CN102452233B (zh) * | 2010-10-25 | 2014-09-03 | 山东新北洋信息技术股份有限公司 | 打印控制方法和装置、打印装置 |
-
2012
- 2012-06-29 CN CN201210222146.1A patent/CN103507448B/zh active Active
-
2013
- 2013-06-27 WO PCT/CN2013/078131 patent/WO2014000659A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4365273A (en) * | 1979-11-05 | 1982-12-21 | Dainippon Screen Seizo Kabushiki Kaisha | Picture data compressing method |
CN1143928A (zh) * | 1994-11-29 | 1997-02-26 | 株式会社吉姆帝王 | 带式打印装置 |
CN1967569A (zh) * | 2006-11-27 | 2007-05-23 | 中外合资南京富士通计算机设备有限公司 | 针式打印机页面压缩处理方法 |
CN102407683A (zh) * | 2010-09-26 | 2012-04-11 | 江门市得实计算机外部设备有限公司 | 打印机的无级变倍打印控制方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2014000659A1 (zh) | 2014-01-03 |
CN103507448A (zh) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103507448B (zh) | 打印控制方法及打印机 | |
CN1129061C (zh) | 一种打印设备和打印方法 | |
DE102020133268A1 (de) | Technologien zum Durchführen eines Kodierens von Datenzeichen für Spaltenlesevorgänge | |
US7948494B2 (en) | Character rendering device, display device, and printer | |
US8477368B2 (en) | Printing apparatus and print data processing system combining stored pattern-based print drawing data with newly-received print drawing data | |
CN1088869C (zh) | 一种信息处理装置和一种信息处理方法 | |
CN1105131A (zh) | 能改变字符大小的字符串输出方法与装置 | |
CN1088319A (zh) | 产生字符的方法和装置 | |
CN108388690B (zh) | 元胞自动机实验平台 | |
CN1102257C (zh) | 输出装置和方法 | |
CN1110801A (zh) | 手写体文字处理系统 | |
CN103677686A (zh) | 信息处理装置、信息处理装置的控制方法 | |
US20100118323A1 (en) | Image forming apparatus | |
JP2705760B2 (ja) | イメージデータ出力装置 | |
JPWO2019026223A1 (ja) | 分析支援システム及び方法 | |
CN115757843B (zh) | 影像标注方法、装置、终端设备以及存储介质 | |
CN101833425A (zh) | 一种倒置打印方法及装置 | |
JP2569489B2 (ja) | 毛筆文字出力装置 | |
CN1169569A (zh) | 能够容易地产生多种不同字体字符的字符图形产生装置 | |
JP2525333B2 (ja) | 出力装置 | |
JP2562524B2 (ja) | データ処理装置 | |
JP2008033713A (ja) | ダイレクトメモリアクセスコントローラ及び画像処理装置 | |
CN108509955A (zh) | 从图像推断笔划信息 | |
CN115760859A (zh) | 一种热敏打印机的打印控制方法及装置 | |
JP3100784B2 (ja) | 文字処理方法及びその装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |