打印机的无级变倍打印控制方法和装置的制作方法

文档序号:2509225阅读:382来源:国知局
专利名称:打印机的无级变倍打印控制方法和装置的制作方法
技术领域
本发明涉及打印机,更具体而言,涉及打印机的无级变倍打印控制方法和装置。
背景技术
在传统的打印机应用中,用户一般是通过WPS、Word、Excel等软件,预先制定好特定的表格,手动输入数据,再将数据通过计算机系统的打印机驱动程序,转换成特定的位图格式后发送给打印机。这种应用方式的特点是页面格式不受限制,用户可以任意改变票据样式,无需了解如何将数据转换成打印机能识别的格式。银行、医院、车站、邮政、税务等行业用户都有自己专用的应用机,通过编写代码, 将打印的数据进行特殊加工后,再发送至打印机,以达到灵活处理数据、简化资料输入过程、制定特定票据格式的目的。图1示意性地示出了例如银行、医院、车站、邮政、税务等行业用户的打印机100的框图。如图1所示,该打印机100包括字库11、字符检索单元12、和打印成像实现单元13。 字符检索单元12接收打印指令,基于打印指令从字库11中检索相应的字符点阵,将字符点阵发送到打印成像实现单元13。打印成像实现单元13基于字符点阵进行打印。现有的打印机不具有对字符进行任意比例缩放的功能。在进行票据打印时,需要在固定的空格内要打印不定数量的字符,而这些字符都不能超出固定空格的范围。若采用现有方法直接打印,容易出现打印字符越界或字符与打印区间不对齐等现象。因此,希望打印机具有打印任意大小字符的能力。但是由于普通打印机的存储容量有限,通过在字库中存储多套不同宽高比的字符点阵,以选用不同大小的字符点阵来适应指定打印范围的方法不现实。

发明内容
为了解决现有技术存在的上述问题,本发明提供了一种用于打印机,特别是针式打印机的无级变倍打印控制方法和装置。根据本发明的第一方面,提供了一种用于打印机的无级变倍打印控制方法,包括: 检索步骤,用于根据打印指令从字库中检索源字符点阵;目标点阵生成步骤,用于根据目标字符点阵的宽度和高度对源字符点阵进行水平变换和/或垂直变换,以得到具有目标字符点阵的宽度和高度的目标字符点阵;以及打印步骤,用于基于目标字符点阵进行打印。根据本发明的第二方面,提供了一种用于打印机的无级变倍打印控制装置,用于根据目标字符点阵的宽度和高度对源字符点阵进行水平变换和/或垂直变换,以得到具有目标字符点阵的宽度和高度的目标字符点阵,包括水平变换单元,用于根据目标字符点阵的宽度,对输入该水平变换单元的点阵进行水平变换;和垂直变换单元,用于根据目标字符点阵的高度,对输入该垂直变换单元的点阵进行垂直变换,其中垂直变换单元的输入端接收来自水平变换单元的输出,或者水平变换单元的输入端接收来自垂直变换单元的输出。根据本发明的第三方面,提供了一种打印机,包括根据本发明第二方面所述的无级变倍打印控制装置,所述打印机还包括字库,用于存储源字符点阵;字符检索单元,用于根据打印指令从字库检索一个或多个源字符点阵;和打印成像实现单元,用于基于目标字符点阵进行打印。


结合附图,根据对示例性实施例的以下说明,本发明的总体构思的上述和/或其他方面将变得显而易见并更易于理解,在附图中图1示意性地示出了现有技术的打印机的框图;图2示出了根据本发明实施例的无级变倍打印控制方法的流程图;图3A-3C示出了根据本发明实施例的对字符点阵进行水平变换的过程;图4A-4B示出了根据本发明实施例的对字符点阵进行垂直变换的过程;图5A-5B示意性地示出了根据本发明实施例的打印机的框图;以及图6示出了根据本发明实施例的无级变倍打印效果图。
具体实施例方式现在参考附图来说明本发明的实施例。根据本发明实施例的无级变倍打印控制方法通过在字库中存储一套源字符点阵, 对源字符点阵进行水平方向和垂直方向的任意扩展或压缩,从而实现到具有任意宽度和高度的目标字符的变换。图2示意性地示出了根据本发明实施例的无级变倍打印控制方法的流程图。如图 2所示,该方法开始于步骤201。在步骤202,接收指示要打印的一个或多个字符的打印指令,基于打印指令检索源字符点阵。在步骤203,对源字符点阵进行水平和/或垂直变换,以获得具有目标字符点阵宽度和高度的目标字符点阵。在步骤204,基于目标字符点阵进行打印。该方法在步骤205结束。根据本发明的实施例,该无级变倍方法还可以包括比较步骤,所述比较步骤包括 如果目标字符点阵的宽度与源字符点阵相同,则仅对源字符点阵执行垂直变换;如果目标字符点阵的高度与源字符点阵相同,则仅对源字符点阵执行水平变换;以及如果目标字符点阵的宽度和高度均与源字符点阵相同,则将源字符点阵直接作为目标字符点阵。根据本发明的实施例,在进行水平变换和垂直变换二者时,可以先进行水平变换, 再进行垂直变换;也可以先进行垂直变换,再进行水平变换。如本领域公知的那样,字符点阵以数字值的形式存储,因此可以通过对其相应的数字值进行操作来实现变换。根据本发明实施例的水平变换包括水平压缩和水平扩展。当目标字符点阵的宽度小于源字符点阵的宽度时执行水平压缩,当目标字符点阵的宽度大于源字符点阵的宽度时执行水平扩展。图3A示意性地示出了根据本发明实施例的水平压缩原理。考虑到在实际使用中,经常需要对字符进行非整数倍的水平压缩(例如将宽度为 6的输入点阵压缩为宽度为4的输出点阵),而简单地从输入点阵中抽取出4列可能导致丢失列数据或者字符变得不光滑,因此,本发明通过使用逻辑列来执行水平压缩,以尽量保留字符图像的原始信息。
如图3A所示,当把宽度为6的输入点阵压缩为宽度为4的输出点阵时,通过将输入点阵的每一列01 06 (简称为输入列)映射到4个连续的逻辑列,来形成具有6*4 = 24 列Ll L24的逻辑点阵。将输入点阵的宽度6作为一个逻辑区间的宽度,从而将每6个逻辑列划分为一个逻辑区间。第一逻辑区间包括逻辑列Ll L6,第二逻辑区间包括逻辑列L7 L12,依此类推。图3A中的示例一共包括4个逻辑区间,分别对应于输出点阵的每一列Tl T4(简称为输出列)。每个逻辑区间对应于一个或多个输入列。当逻辑区间与一个输入列相对应时,将该输入列的值作为相应输出列的值。当逻辑区间与多个输入列相对应时,将多个输入列的值的或(OR)运算结果作为相应输出列的值。例如,包括逻辑列Ll L6的第一逻辑区间对应于两个输入列01和02,因此将输入列01和02的值或运算结果作为相应的输出列Tl 的值。包括逻辑列L7 L12的第二逻辑区间对应于一个输入列03,因此将输入列03的值作为相应的输出列T2的值。包括逻辑列L13 L18的第三逻辑区间对应于两个输入列04 和05,因此将输入列04和05的值的或运算结果作为相应的输出列T3的值。包括逻辑列 L19 LM的第四逻辑区间对应于一个输入列06,因此将输入列06的值作为相应的输出列 T4的值。针对每个逻辑区间进行上述操作,以获得宽度为4的输出点阵。图;3B示意性地示出了根据本发明实施例的水平扩展原理。如图:3B所示,当把宽度为4的输入点阵扩展为宽度为6的输出点阵时,通过将输入点阵的每一列01 04(简称为输入列)映射到6个连续的逻辑列,来形成具有4*6 = 24 列Ll L24的逻辑点阵。将输入点阵的宽度4作为一个逻辑区间的宽度,从而将每4个逻辑列划分为一个逻辑区间。第一逻辑区间包括逻辑列Ll L4,第二逻辑区间包括逻辑列L5 L8,依此类推。图:3B中的示例一共包括6个逻辑区间,分别对应于输出点阵的每一列Tl T6(简称为输出列)。每个逻辑区间对应于一个输入列或不对应于任何输入列。当逻辑区间与一个输入列相对应时,将该输入列的值作为相应输出列的值。当逻辑区间不对应于任何输入列时,将与该逻辑区间最接近的、并且具有对应的输入列的在前逻辑区间所对应的输入列的作为相应输出列的值。例如,包括逻辑列Ll L4的第一逻辑区间对应于输入列01,因此将输入列01的值作为相应的输出列Tl的值。包括逻辑列L5 L8的第二逻辑区间对应于输入列 02,因此将输入列02的值作为相应的输出列Τ2的值。包括逻辑列L9 L12的第三逻辑区间不对应于任何输入列,因此将第二逻辑区间所对应的输入列02的值作为相应的输出列 Τ3的值。包括逻辑列L13 L16的第四逻辑区间对应于输入列03,因此将输入列03的值作为相应的输出列Τ4的值。包括逻辑列L17 L20的第五逻辑区间对应于输入列04,因此将输入列04的值作为相应的输出列Τ5的值。包括逻辑列L21 LM的第六逻辑区间不对应于任何输入列,因此将第五逻辑区间所对应的输入列04的值作为相应的输出列Τ6的值。 针对每个逻辑区间进行上述操作,以获得宽度为6的输出点阵。图3C示出了根据本发明实施例的水平变换方法的流程图,其中,输入点阵的宽度是Ν0,输出点阵的宽度是m。该方法开始于步骤301。在步骤302,将输入点阵的每一输入列映射到m个连续的逻辑列。在步骤303,将每NO个逻辑列划分为一个逻辑区间,每个逻辑区间对应于输出点阵中的一个输出列。在步骤304,针对每个逻辑区间,基于所述映射获得与该逻辑区间对应的输出列的值。在步骤304中,具体地,对于水平压缩变换,当逻辑区间对应于一个输入列时,将该输入列的值作为相应输出列的值。当逻辑区间对应于多个输入列时,将多个输入列的值的或(OR)运算结果作为输出列的值。对于水平扩展变换,当逻辑区间对应于一个输入列时,将该输入列的值作为相应输出列的值。当逻辑区间不对应于任何输入列时,将与该逻辑区间最接近的、并且具有对应的输入列的在前逻辑区间所对应的输入列的值作为相应输出列的值。该方法在步骤305结束。接下来,参考图4A,以对输入点阵进行垂直扩展变换为例描述根据本发明实施例的垂直变换的原理。由于字符点阵是以一维列数据格式存储的,所以如果直接进行垂直变换,则必须进行位操作,其无论在程序控制开销上还是运行时间上都远大于水平变换。考虑到字符点阵具有离散的几何特征,而经过旋转后的字符点阵的几何特征能够完好保存,因此,为节省程序的运行时间及提高打印效率,根据本发明的实施例将垂直变换转化为水平变换进行处理,全程分三个步骤。如图4A所示,首先对输入点阵作90度的旋转变换,得到宽度等于源字符点阵高度的点阵。然后对该点阵水平扩展变换,以得到宽度等于目标字符高度的点阵。 最后,把变换后的点阵再逆向旋转90度就得到输出点阵。本领域技术人员可以理解,对输入点阵的90度旋转变换可以是顺时针旋转90度,也可以是逆时针旋转90度。图4A示出了顺时针旋转90度的情况。对输入点阵进行垂直压缩变换的方法与垂直扩展变换类似,即首先对输入点阵作 90度的旋转变换,得到宽度等于源字符点阵高度的点阵。然后对该点阵水平压缩变换,以得到宽度等于目标字符高度的点阵。最后,把变换后的点阵再逆向旋转90度,得到输出点阵。图4B示出了根据本发明实施例的垂直变换方法的流程图。该方法开始于步骤 401。在步骤402,将输入点阵旋转90度。在步骤403,对旋转90度的输入点阵进行水平扩展或压缩。在步骤404,将在步骤403水平扩展或压缩所得的点阵逆向旋转90度,以得到输出点阵。该方法在步骤405结束。根据本发明的实施例,可以先对源字符点阵进行水平变换,然后对水平变换的输出点阵进行垂直变换,从而获得目标字符点阵。或者,也可以先对源字符点阵进行垂直变换,然后对垂直变换的输出点阵进行水平变换,从而获得目标字符点阵。图5A示出了根据本发明实施例的打印机500的框图。如图5A所示,打印机500包括字库51,用于存储源字符点阵;字符检索单元52, 用于根据打印指令从字库检索一个或多个源字符点阵;无级变倍打印控制装置M,用于根据目标字符点阵的宽度和高度,基于源字符点阵得到具有目标字符点阵的宽度和高度的目标字符点阵;以及打印成像实现单元53,用于基于目标字符点阵进行打印。无级变倍打印控制装置M包括水平变换单元M1,用于对字符点阵进行包括水平扩展和水平压缩的水平变换;垂直变换单元M2,用于对字符点阵进行包括垂直扩展和垂直压缩的垂直变换。水平变换单元Ml的输入端接收源字符点阵,其输出端连接到垂直变换单元M2的输入端,垂直变换单元输出目标字符点阵。
水平变换单元的水平变换操作和垂直变换单元的垂直变换操作如上文参考图 3A-4B所述,这里为了简明起见不再重复。根据本发明实施例,无级变倍打印控制装置M还可以包括比较单元543,用于对目标字符点阵的宽度和高度与源字符点阵的宽度和高度进行比较,其中如果目标字符点阵的宽度与源字符点阵相同,则控制水平变换单元541不进行水平变换,从而垂直变换单元542对源字符点阵执行垂直变换;如果目标字符点阵的高度与源字符点阵相同,则控制垂直变换单元542不进行垂直变换,从而仅对源字符点阵执行水平变换;以及如果目标字符点阵的宽度和高度均与源字符点阵相同,则控制水平变换单元541和垂直变换单元542 均不执行变换,从而将源字符点阵直接作为目标字符点阵输出。图5B示出了根据本发明实施例的打印机500’的框图。如图5B所示,打印机500’包括字库51,用于存储源字符点阵;字符检索单元52, 用于根据打印指令从字库检索一个或多个源字符点阵;无级变倍打印控制装置M,用于根据目标字符点阵的宽度和高度,基于源字符点阵得到具有目标字符点阵的宽度和高度的目标字符点阵;以及打印成像实现单元53,用于基于目标字符点阵进行打印。无级变倍打印控制装置M包括水平变换单元M1,用于对字符点阵进行包括水平扩展和水平压缩的水平变换;垂直变换单元M2,用于对字符点阵进行包括垂直扩展和垂直压缩的垂直变换。垂直变换单元M2的输入端接收源字符点阵,其输出端连接到水平变换单元Ml的输入端,水平变换单元541输出目标字符点阵。水平变换单元的水平变换操作和垂直变换单元的垂直变换操作如上文参考图 3A-4B所述,这里为了简明起见不再重复。根据本发明实施例,无级变倍打印控制装置M还可以包括比较单元543,用于对目标字符点阵的宽度和高度与源字符点阵的宽度和高度进行比较,其中如果目标字符点阵的高度与源字符点阵相同,则控制垂直变换单元542不进行垂直变换,从而水平变换单元541对源字符点阵执行水平变换;如果目标字符点阵的宽度与源字符点阵相同,则控制水平变换单元541不进行水平变换,从而仅对源字符点阵执行垂直变换;以及如果目标字符点阵的宽度和高度均与源字符点阵相同,则控制水平变换单元541和垂直变换单元542 均不执行变换,从而将源字符点阵直接作为目标字符点阵输出。利用本发明的无级变倍打印控制方法和装置,由于仅需要存储一套源字符点阵, 可以节省打印机存储器空间。例如,对于常用的大小为对拉4的源字符点阵,只需要约1MB 左右的字库容量。另外,利用本发明的无级变倍打印控制方法和装置能够实现在水平方向和垂直方向上的任意扩展或压缩,可适应在指定大小的区域内输出指定的字符。例如,对于常用的大小为24* 的原始字符点阵,通过对源字符点阵进行变换,可以实现大小为8*8 96*96范围内的任意点阵字符的变换。经过无级变倍的字符没有信息丢失,能很好地识别。 利用本发明的无级变倍打印控制方法和装置实现的字符无级变倍的效果如图6所示。根据本发明的无级变倍打印控制方法和装置可以应用于针式打印机,也可以应用于其他任何利用字库进行打印的打印设备。以上参考具体实施例描述了本发明的原理。本领域技术人员应当理解,在不背离根据所附权利要求表述的本发明范围的前提下,本领域技术人员可以对本发明的具体实现方式进行各种改变。
应当理解,不需要以所述的顺序来执行这里所提出的示例方法的步骤,并且这样的方法的步骤的顺序应当理解为仅是示例性的。同样,附加的步骤可以包括在这样的方法中,并且根据本发明的各个实施例,在方法中可以省略或组合特定步骤。本发明的装置可以以软件、硬件或软硬件组合的方式实现,所有这些方式都包括在由所附权利要求限定的本发明的保护范围之内。
权利要求
1.一种用于打印机的无级变倍打印控制方法,包括检索步骤,用于根据打印指令从字库中检索源字符点阵;目标点阵生成步骤,用于根据目标字符点阵的宽度和高度对源字符点阵进行水平变换和/或垂直变换,以得到具有目标字符点阵的宽度和高度的目标字符点阵;以及打印步骤,用于基于目标字符点阵进行打印。
2.根据权利要求1所述的方法,其中水平变换包括水平扩展和水平压缩,垂直变换包括垂直扩展和垂直压缩。
3.根据权利要求1所述的方法,其中目标点阵生成步骤还包括比较步骤,所述比较步骤包括如果目标字符点阵的宽度与源字符点阵相同,则仅对源字符点阵执行垂直变换;如果目标字符点阵的高度与源字符点阵相同,则仅对源字符点阵执行水平变换;以及如果目标字符点阵的宽度和高度均与源字符点阵相同,则将源字符点阵直接作为目标字符点阵。
4.根据权利要求1所述的方法,其中在对源字符点阵执行水平变换和垂直变换时,先对源字符点阵执行水平变换,然后对水平变换所得的点阵执行垂直变换。
5.根据权利要求1所述的方法,其中在对源字符点阵执行水平变换和垂直变换时,先对源字符点阵执行垂直变换;然后对垂直变换所得的点阵执行水平变换。
6.根据权利要求1所述的方法,其中垂直变换包括将需要进行垂直变换的点阵旋转90度;对旋转所得的点阵执行水平变换;以及将水平变换所得的点阵逆向旋转90度。
7.根据权利要求1所述的方法,其中水平变换用于将宽度为NO的待变换的输入点阵变换为宽度为W的变换后的输出点阵,包括将输入点阵的每个输入列映射到W个连续的逻辑列;将每NO个逻辑列划分为一个逻辑区间,每个逻辑区间对应于输出点阵中的一个输出列;针对每个逻辑区间,基于所述映射获得该逻辑区间的相应输出列的值,从而得到输出点阵。
8.根据权利要求7所述的方法,其中针对每个逻辑区间,基于所述映射获得该逻辑区间的相应输出列的值包括对于水平压缩,当逻辑区间对应于一个输入列时,将该输入列的值作为相应输出列的值,当逻辑区间对应于多个输入列时,将所述多个输入列的值的或运算结果作为输出列的值;对于水平扩展,当逻辑区间对应于一个输入列时,将该输入列的值作为相应输出列的值,当逻辑区间不对应于任何输入列时,将与该逻辑区间最接近的、并且具有对应的输入列的在前逻辑区间所对应的输入列的值作为相应输出列的值。
9.一种用于打印机的无级变倍打印控制装置,用于根据目标字符点阵的宽度和高度对源字符点阵进行水平变换和/或垂直变换,以得到具有目标字符点阵的宽度和高度的目标字符点阵,包括水平变换单元,用于根据目标字符点阵的宽度,对输入该水平变换单元的点阵进行水平变换;和垂直变换单元,用于根据目标字符点阵的高度,对输入该垂直变换单元的点阵进行垂直变换,其中垂直变换单元的输入端接收来自水平变换单元的输出,或者水平变换单元的输入端接收来自垂直变换单元的输出。
10.根据权利要求9所述的装置,其中水平变换包括水平扩展和水平压缩,垂直变换包括垂直扩展和垂直压缩。
11.根据权利要求9所述的装置,还包括比较单元,用于对目标字符点阵的宽度和高度与源字符点阵的宽度和高度进行比较, 其中如果目标字符点阵的宽度与源字符点阵相同,则控制仅对源字符点阵执行垂直变换; 如果目标字符点阵的高度与源字符点阵相同,则控制仅对源字符点阵执行水平变换;以及如果目标字符点阵的宽度和高度均与源字符点阵相同,则控制将源字符点阵直接作为目标字符点阵。
12.根据权利要求9所述的装置,其中垂直变换单元的输入端接收来自水平变换单元的输出,水平变换单元的输入端接收源字符点阵。
13.根据权利要求9所述的装置,其中水平变换单元的输入接收来自垂直变换单元的输出,垂直变换单元的输入端接收源字符点阵。
14.根据权利要求9所述的装置,其中垂直变换单元用于 将输入该垂直单元的点阵旋转90度;对旋转所得的点阵执行水平变换;以及将水平变换所得的点阵逆向旋转90度并输出。
15.根据权利要求9所述的装置,其中水平变换单元用于将宽度为NO的待变换的输入点阵变换为宽度为W的变换后的输出点阵,包括将输入点阵的每个输入列映射到W个连续的逻辑列;将每NO个逻辑列划分为一个逻辑区间,每个逻辑区间对应于输出点阵中的一个输出列;针对每个逻辑区间,基于所述映射获得该逻辑区间的相应输出列的值,从而得到输出点阵。
16.根据权利要求15所述的装置,其中针对每个逻辑区间,基于所述映射获得该逻辑区间的相应输出列的值包括对于水平压缩变换,当逻辑区间对应于一个输入列时,将该输入列的值作为相应输出列的值,当逻辑区间对应于多个输入列时,将所述多个输入列的值的或运算结果作为输出列的值;对于水平扩展变换,当逻辑区间对应于一个输入列时,将该输入列的值作为相应输出列的值,当逻辑区间不对应于任何输入列时,将与该逻辑区间最接近的、并且具有对应的输入列的在前逻辑区间所对应的输入列的值作为相应输出列的值。
17. 一种打印机,包括根据权利要求9-16中任意一项所述的无级变倍打印控制装置, 所述打印机还包括字库,用于存储源字符点阵;字符检索单元,用于根据打印指令从字库检索一个或多个源字符点阵;和打印成像实现单元,用于基于目标字符点阵进行打印。
全文摘要
本发明提供了一种用于打印机的无级变倍打印控制方法,包括检索步骤,用于根据打印指令从字库中检索源字符点阵;目标点阵生成步骤,用于根据目标字符点阵的宽度和高度对源字符点阵进行水平变换和/或垂直变换,以得到具有目标字符点阵的宽度和高度的目标字符点阵;以及打印步骤,用于基于目标字符点阵进行打印。本发明还提供了一种用于打印机的无级变倍打印控制装置,以及包括该装置的打印机。
文档编号B41J2/485GK102407683SQ201010292670
公开日2012年4月11日 申请日期2010年9月26日 优先权日2010年9月26日
发明者张午 申请人:江门市得实计算机外部设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1