一种倒置打印方法及装置的制作方法

文档序号:6576960阅读:445来源:国知局
专利名称:一种倒置打印方法及装置的制作方法
技术领域
本发明涉及打印技术领域,具体的讲是一种倒置打印方法及装置。
背景技术
打印机接收的数据一般可分为2类文本格式的字符数据与图形格式的打印数 据。图形格式的打印数据可以直接打印,不需要打印机进行转换,但数据量大、传输时间长 且要求大容量存储器;文本格式的字符数据不能直接打印,必须在打印机内进行从文本格 式到打印格式的数据转换,但该数据量小、传输时间短、需要缓存也比较小。办公用打印机 采用图形格式打印的比较多,而小型打印机,如超市、餐厅中使用的POS机采用文本格式的 居多。根据打印头打印方式的不同,小型打印机包括按行打印的行模式打印机,如热敏打 印机、热转印打印机等;按列打印的列式打印机,如单列针式打印机等。多数情况下,打印机按照接收数据的顺序打印,且打印字符的方向与介质前进方 向一致,如图Ia所示。在有些特殊应用场合如在厨房中,为节省空间把打印机挂在墙上使 用时,为了方便用户查看打印内容,需要把字符以与介质前进方向相反的方式打印,且先接 收的信息后打印、后接收的信息先打印,如图Ib所示,即所谓的倒置打印。一般情况下,文本格式的字符数据进行倒置打印时,一次性对所有字符行的字符 数据进行格式转换,然后对转换完的字符数据倒置打印,该处理方法简单易行,在字符行数 比较少的情况下还能较好的工作;当字符行数比较多时,由于所生成的字符数据量很大,因 而其所需内存很大,且处理所有字符行所需时间较长,大大降低打印机的性能,特别是当字 符行数很多时、所生成的字符数据量超过其存储容量时,打印机甚至不能正常工作。

发明内容
本发明的目的在于提供一种倒置打印方法及装置,实现文本格式下多行数据的倒 置打印,它需要较小的内存,并且处理速度快,特别适合成本比较低的POS打印机,用于解 决现有技术中倒置打印速度慢,内存耗费大,效率低的问题。为了解决上述技术问题,本发明实施例提供了一种倒置打印方法,该方法包括接收字符数据;将所述字符数据分为复数个子区域;按接收相反顺序依次对所述子区域进行倒置打印。根据本发明实施例方法的一个进一步的方面,将所述字符数据分为复数个子区域 具体包括确定所述字符数据总的字符行数n,其中η为自然数;以所述字符行为单位,把所 述字符数据划分成η个子区域。根据本发明实施例方法的再一个进一步的方面,在倒置打印所述子区域中内容之 前,还包括将所述子区域中的字符数据转换为点阵数据。根据本发明实施例方法的另一个进一步的方面,对所述子区域进行倒置打印具体 包括
a)对所述点阵数据以点行/列为单位分为m点行/列并排序;b)逆序打印所述子区域中一点行/列的逆序点数据;c)判断m行/列是否打印完,如果打印完成则结束,否则返回步骤b)。根据本发明实施例方法的另一个进一步的方面,对所述子区域进行倒置打印还包 括a)对所述点阵数据进行180度旋转;b)打印所述旋转后点阵数据。根据本发明实施例方法的另一个进一步的方面,对所述点阵数据进行180度旋转 的方法具体包括对所述点阵数据以点行/列为单位分为m点行/列并排序;颠倒子区域中所有点行/列间的点行/列数据;颠倒子区域中所有点行/列内的点数据。为了解决上述技术问题,本发明实施例还提供了一种倒置打印装置,该装置包 括通信接口,用于接收从主机发送过来的字符数据;全区域数据处理单元,用于将所述字符数据分为复数个子区域并排序;子区域格式处理单元,逆序将所述子区域中的字符数据转换为点阵数据;子区域倒置处理单元,对所述子区域中的点阵数据进行倒置处理;打印单元,根据所述倒置后的点阵数据进行打印。本发明的实施例的有益效果在于,本方法可以明显提高内存的利用率、节省打印 等待时间。通常处理中,一次性转换整个区域内的全部数据即η个子区域数据,假如每个子 区域生成的字符数据为m字节,则整个打印区域的字符数据占用内存空间为n*m字节;而采 用本发明的方案,假如一次只处理一个子区域,其占用的内存空间为m字节,则本控制方法 可节省空间约为(n-l)*m个字节。如转换一个子区域的需要χ毫秒,则现有技术一次性转 换所有子区域的数据需要n*x毫秒,本发明方法可减少(n-l)*x毫秒的等待时间。由此可 见,倒置打印区域的字符行越多,则本控制方法节省的内存越多、打印等待时间也越短。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,并不 构成对本发明的限定。在附图中图Ia所示为现有技术中正序打印示意图;图Ib所示为现有技术中倒置打印示意图;图2所示为本发明倒置打印方法第一实施例流程图;图3所示为本发明倒置打印方法第二实施例流程图;图4所示为本发明行倒置打印方法实施例流程图;图5所示为本发明倒置打印中180度行旋转倒置打印方法的实施例流程图;图6所示为本发明倒置打印方法第三实施例流程图;图7所示为本发明倒置打印中列倒置打印方法实施例流程图;图8所示为本发明倒置打印中180度列旋转倒置打印方法实施例流程图9a所示为本实施例中行模式正序打印时子区域点阵数据示意图;图9b所示为本实施例中行倒置打印时子区域点阵数据示意图;图9c所示为本实施例中行模式180度行倒置打印时子区域点阵数据示意图;图IOa所示为本实施例中正序打印时子区域点阵数据的示意图;图IOb所示为本实施例中列倒置打印时子区域点阵数据示意图;图IOc所示为本实施例中180度列倒置打印时子区域点阵数据示意图;图11所示为全区域数据处理示意图;图12所示为子区域数据处理示意图;图13所示为本发明倒置打印装置实施例结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施方式和附图,对 本发明做进一步详细说明。在此,本发明的示意性实施方式及其说明用于解释本发明,但并 不作为对本发明的限定。本发明实施例提供一种倒置打印方法及装置。以下结合附图对本发明进行详细说 明。如图2所示为本发明倒置打印方法第一实施例流程图。包括步骤201,接收字符数据。步骤202,将所述字符数据分为复数个子区域,将所述复数个子区域进行排序;步骤203,按接收的相反顺序对所述子区域进行倒置打印。作为本发明的一个实施例,在所述步骤202之前还包括一个判断用户是否发出倒 置打印的指令,如果收到倒置打印指令则进入步骤202,否则进行常规的正序打印,即根据 数据接收的先后顺序打印出接收到的数据。由于正序打印方法属于公知技术,此处不再赘 述。同时结合图3、图11和图12,说明第二实施例倒置打印方法的处理步骤,本实施例 适用于行式打印头的打印装置。包括步骤301,接收文本格式的字符数据。步骤302,打印区域划分,对接收数据缓冲区111中的所有数据进行处理,按照数 据的接收顺序1105,根据行宽、换行指令等确定文本数据的字符行数n,其中η为自然数,并 按照从1到η排序,把打印缓冲区111分为子区域1101、1102、1103、1104等。步骤303,记录子区域属性,按照从1到η的顺序记录每个子区域中字符数据在接 收缓冲区中的首地址、尾地址,即地址属性;记录行高、字符放大倍数等行属性,地址属性和 行属性均属于打印属性。步骤304,将所述子区域中的字符数据转换为点阵数据。作为本发明的一个实施例,逆序对子区域数据进行格式转换,从第η个子区域 1104开始,按照从η至1的顺序逐个对子区域1104、1103、1102、1101中的字符数据进行处 理,根据该子区域字符数据在接收缓冲区中的首地址、尾地址等地址属性,搜索到该子区域 的字符数据;根据该子区域的行高、行宽、字符放大倍数等行属性确定子区域点阵数据量大 小;对子区域中的字符数据进行字符数据到点阵数据的格式转换,转换完的点阵数据存储在子区域打印缓冲区中,由于每个子区域的字符行与行的高度不一定相同,每个子区域生 成的点阵数据量大小也不一定相同,例如因为字符行的高度不同,第η个子区域1104生成 的点阵数据1206比第η-1个子区域1103生成的点阵数据1207多。作为本发明的一个实施例,每次转换的子区域数据个数,可以根据打印机缓存的 容量调整,如1个、2个等,由于点阵数据量比较大,最节省内存的情况下每次只转换一个子 区域,即每转换一个子区域字符数据就倒置打印该子区域的点阵数据,然后再对下一个子 区域进行格式转换,依次循环;当需要减少打印等待时间时,要使用多个点阵数据缓冲区, 每次可以转换多个子区域字符数据。步骤305,选择用户的子区域倒置打印方式,可以根据需要,选择适合的打印方式 行倒置打印或180度行旋转倒置打印。如果选择行倒置打印,则进入步骤306 ;如果选择180 度行旋转倒置打印,则进入步骤307。
步骤306,对所述子区域打印缓冲区内的点阵数据进行倒置打印。步骤307,对所述子区域打印缓冲区内的点阵数据进行180度行旋转倒置打印。步骤308,判断所有子区域是否都打印完,如果没有打印完成则返回步骤304,继 续下一个子区域的处理,否则结束。子区域的处理过程如图12所示,按照1210的方向,先倒置打印第η个子区域的点 阵数据1206,然后倒置打印第η-1个子区域的点阵数据1207,依次打印,直到打印第1个子 区域的点阵数据1209,最终的打印结果如122所示,实现了全区域接收数据111的倒置打 印。如图4所示为本发明行倒置打印方法实施例流程图。包括步骤401,以打印单元每次可打印的点行数据为单位划分子区域点阵数据,按 照从上到下的顺序对点行数据排列。其中,每个字符行点阵数据都由若干点行组成。下面结合图9a、图9b说明子区域点行划分及数据的发送顺序。图9a所示为本实 施例中正序打印时子区域点阵数据示意图,图9b所示为本实施例中行倒置打印时子区域 点阵数据示意图。以打印单元每行可打印k个点为例,在图9a中打印缓冲区90中存储m 点行、每行k个点的点阵数据,打印缓冲区内行间数据的发送顺序如901所示;行内数据的 发送顺序为902所示。要实现打印缓冲区内字符数据的倒置打印,首先要上下颠倒缓冲区 内行间数据的发送顺序,从第1至m行变为从第m至1行,如图9b的903所示;然后,再颠 倒行内数据的发送顺序,从第1至k点变为从第k至1点,如图9b的904所示。步骤402,逆序读取一点行数据。即如图9b中903的方向,按照第m至1行的顺 序,从第m行开始,每次读取一点行数据。步骤403,将点行内的点数据逆序发送给打印单元。如图9b中904所示的方向,按 照从第k至1点的顺序,依次发送该点行内的点数据步骤404,打印该点行数据。步骤405,判断所有行是否打印完,如果打印完成则结束,否则返回步骤402。如图5所示为本发明倒置打印中180度行旋转倒置打印方法的实施例流程图。包括步骤501,以点行为单位划分子区域点阵数据,按照从上到下的顺序对点行数 据排序。其中,每个字符行的点阵数据都由若干点行组成。步骤502,上下颠倒子区域中所有点行数据。
步骤503,左右颠倒子区域中所有点行的行内点数据。图9a所示为本实施例中行模式正序打印时子区域点阵数据示意图,图9c所示为 本实施例中行模式180度行倒置打印时子区域点阵数据示意图。把图9a中打印缓冲区90 内的m行*k点的数据进行180度旋转,转换成图9c中打印缓冲区92中的m行*k点的数 据,即实现缓冲区内行间数据的上下颠倒、行内数据的左右颠倒。步骤504,按照图9c中905的方向,按照第1至m行的顺序(实际点行数据的第m 行至1行),从第1行开始,逐行读取一点行数据。步骤505,按照图9c中906的方向,按照第1至k点的顺序(实际数据的第k点至 1点的顺序),依次发送该点行数据。步骤506,打印该点行数据。步骤507,判断所有点行是否打印完,如果打印完成则结束,否则返回步骤504。如图6所示为本发明倒置打印方法第三实施例流程图。
本实施例适用于列式打印头的打印装置,和第二实施例的主要步骤基本相同,区 别在于实施子区域数据倒置打印时的具体实施方式
不同。包括步骤601,接收文本格式的字符数据。步骤602,打印区域划分,对接收数据缓冲区中的所有数据进行处理,按照数据的 接收顺序,根据行宽、换行指令等确定文本数据的字符行数n,其中η为自然数,并按照从1 到η排序。步骤603,记录子区域属性,按照从1到η的顺序记录每个子区域中字符数据在接 收缓冲区中的首地址、尾地址,即地址属性;记录行高、字符放大倍数等行属性,地址属性和 行属性均属于打印属性。步骤604,逆序对子区域数据进行格式转换,从第η个子区域开始,按照从η至1的 顺序逐个对子区域字符数据进行处理,根据该子区域字符数据在接收缓冲区中的首地址、 尾地址等地址属性,搜索到该子区域的字符数据;根据该子区域的行高、行宽、字符放大倍 数等行属性确定子区域点阵数据量大小;对子区域中的字符数据进行字符数据到点阵数据 的格式转换,转换完的点阵数据存储在子区域打印缓冲区中,由于每个子区域的字符行与 行的高度不一定相同,每个子区域生成的点阵数据量大小也不一定相同。步骤605,选择用户的子区域倒置打印方式,可以根据需要,选择适合的打印方式 列倒置打印或180度列旋转倒置打印。如果选择列倒置打印,则进入步骤606 ;如果选择180 度列旋转打印,则进入步骤607。步骤606,对所述子区域打印缓冲区内的点阵数据进行列倒置打印。步骤607,对所述子区域打印缓冲区内的点阵数据进行180度列旋转倒置打印。步骤608,判断所有子区域是否都打印完,如果没有打印完成则返回步骤604,否 则结束。如图7所示为本发明倒置打印中列倒置打印方法实施例流程图。包括步骤701,以打印单元每次可打印的点列数据为单位划分子区域点阵数据,按 照从左到右的顺序对点列数据排序。下面结合图10a、图IOb说明子区域点列划分及数据的发送顺序。图IOa所示为 本实施例中正序打印时子区域点阵数据的示意图,图IOb所示为本实施例中列倒置打印时子区域点阵数据示意图。以打印单元每列可打印m个点为例,在图IOa中打印缓冲区100 中存储k点列、每列m点的点阵数据,打印缓冲区内列间数据的发送顺序如1001所示;列内 数据的发送顺序为1002所示。要实现打印缓冲区内字符数据的倒置打印,首先要左右颠倒 缓冲区内列间数据的发送顺序,从第1至k列变为从第k至1列,如图IOb的1003所示;然 后,颠倒列内数据的发送顺序,从第1至m点变为从第m至1点,如图IOb的1004所示。步骤702,逆序读取一点列数据。即如图IOb中1003的方向,按照第k至1列的顺 序,从第k列开始,每次读取一点列数据。步骤703,将所述点列的点数据逆序发送给打印单元。如图IOb中1004所示的方 向,按照从第m至1点的顺序,依次发送该点列数据步骤704,打印该点列数据。步骤705,判断所有点列是否打印完,如果打印完成则结束,否则返回步骤702。如图8所示为本发明倒置打印中180度列旋转倒置打印方法实施例流程图。包括步骤801,以点列为单位划分子区域点阵数据,按照从左到右的顺序对点列数 据排序。步骤802,左右颠倒子区域中所有点列数据。步骤803,上下颠倒子区域中所有点列内的点数据。图IOa所示为本实施例中正序打印时子区域点阵数据示意图,图IOc所示为本实 施例中180度列倒置打印时子区域点阵数据示意图。把图IOa中打印缓冲区100内的k列 *m点的点阵数据进行180度旋转,转换成图IOc中打印缓冲区102中的k列*m点的点阵数 据,即实现缓冲区内点列数据的左右颠倒、列内点数据的上下颠倒。步骤804,按照图IOc中1005的方向,按照第1至k列的顺序(实际数据的第k至 1列),从第1列开始,依次读取一点列数据。步骤805,按照图IOc中1006的方向,按照第1至m点的顺序(实际数据的第m至 1点)发送一点列数据。步骤806,打印该点列字符数据。步骤807,判断所有点列是否打印完,如果打印完成则结束,否则返回步骤804。如图13所示为本发明倒置打印装置实施例结构图。包括通信接口 1301,接收缓冲区1302,全区域数据处理单元1303,子区域格式处 理单元1304,子区域倒置处理单元1305,打印单元1306。通信接口 1301,用于接收从主机发送过来的文本格式的字符数据并把字符数据存 储在接收缓冲区1302中。接收缓冲区1302,用于存储所述字符数据。全区域数据处理单元1303,用于将所述字符数据分为复数个子区域,将所述复数 个子区域进行排序。对接收的字符数据进行检测,每接收一行字符数据则生成该行数据的各种属性并 记录该属性确定该行字符数据在整个接收缓冲区内的首地址、尾地址,即地址属性;根据 接收的行高等生成该行字符数据的行属性,存储该行字符数据的地址属性及行属性。子区域格式处理单元1304,以字符行为单位划分接收字符数据为η个子区域并进 行从1至η的排序,按照从η至1的顺序,对每行字符数据进行格式转换根据子区域字符数据的地址属性,搜索到该子区域的字符数据;根据该子区域的行属性对子区域中的文本格 式数据进行字符数据到点阵数据的转换,转换完的点阵数据存储在子区域打印缓冲区中。子区域倒置处理单元1305,对存储在子区域缓冲区中的点阵数据进行倒置处理并 把处理过的点阵数据按行/列发送给打印单元。打印单元1306,按行/列打印所述点阵数据。作为本发明的一个实施例,所述子区域倒置处理单元1305,可以按照每处理一行 /列点阵数据就将该行/列点阵数据传送给打印单元1306,进行打印处理按点行/列方 式划分打印缓冲区中的点阵数据,逆序读取一行/列点阵数据,逆序发送该点行/列的点数 据,打印该点行/列数据;然后再逆序读取下一点行/列数据,将点行/列中的点数据逆序 发送给打印单元1306,进行打印处理,直至打印缓冲区中的所有点行/列数据全部打印完。作为本发明的一个实施例,所述子区域倒置处理单元1305,按 照点行/列的方式 划分点阵数据,然后一次性对打印缓冲区中的所有行/列点阵数据进行180旋转,再逐行/ 列读取每一点行/列数据,发送该点行/列的点数据并打印该点行/列数据,直至打印缓冲 区中的所有点行/列数据全部打印完。180旋转点阵数据的方法为当打印单元1306按照 点行来打印数据时,按点行划分点阵数据,先上下颠倒子区域中所有点行间的点行数据,再 左右颠倒所有点行内的点数据;当打印单元1306按照点列来打印数据时,按点列划分点阵 数据,先左右颠倒子区域中所有点列间的点列数据,再上下颠倒所有点列内的点数据。本发明的实施例的有益效果在于,本方法可以明显提高内存的利用率、节省打印 等待时间。现有技术中,一次性转换整个区域内的全部字符数据即η个子区域字符数据,假 如每个子区域生成的字符数据为m字节,则整个打印区域的字符数据占用内存空间为n*m 字节;而采用本发明的方案,假如一次只处理一个子区域,其占用的内存空间为m字节,则 本控制方法可节省空间约为(n-l)*m个字节。如转换一个子区域的字符数据需要χ毫秒, 则现有技术一次性转换所有子区域的字符数据需要n*x毫秒,本发明方法可减少(n-l)*x 毫秒的等待时间。由此可见,倒置打印区域的字符行越多,则本控制方法节省的内存越多、 打印等待时间也越短。以上所述的具体实施方式
,对本发明的目的、技术方案和有益效果进行了进一步 详细说明,所应理解的是,以上所述仅为本发明的具体实施方式
而已,并不用于限定本发明 的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含 在本发明的保护范围之内。
权利要求
一种倒置打印方法,其特征在于该方法包括接收字符数据;将所述字符数据分为复数个子区域;按接收相反顺序依次对所述子区域进行倒置打印。
2.根据权利要求1所述的方法,其特征在于,将所述字符数据分为复数个子区域具体 包括确定所述字符数据总的字符行数n,其中n为自然数;以所述字符行为单位,把所述字 符数据划分成n个子区域。
3.根据权利要求1所述的方法,其特征在于,在倒置打印所述子区域中内容之前,还包 括将所述子区域中的字符数据转换为点阵数据。
4.根据权利要求3所述的方法,其特征在于,对所述子区域进行倒置打印具体包括a)对所述点阵数据以点行/列为单位分为m点行/列并排序;b)逆序打印所述子区域中一点行/列的逆序点数据;c)判断m行/列是否打印完,如果打印完成则结束,否则返回步骤b)。
5.根据权利要求3所述的方法,其特征在于,对所述子区域进行倒置打印还包括a)对所述点阵数据进行180度旋转;b)打印所述旋转后点阵数据。
6.根据权利要求5所述的方法,其特征在于,对所述点阵数据进行180度旋转的方法具 体包括对所述点阵数据以点行/列为单位分为m点行/列并排序; 颠倒子区域中所有点行/列间的点行/列数据; 颠倒子区域中所有点行/列内的点数据。
7.一种倒置打印装置,其特征在于该装置包括 通信接口,用于接收从主机发送过来的字符数据;全区域数据处理单元,用于将所述字符数据分为复数个子区域并排序; 子区域格式处理单元,逆序将所述子区域中的字符数据转换为点阵数据; 子区域倒置处理单元,对所述子区域中的点阵数据进行倒置处理; 打印单元,根据所述倒置后的点阵数据进行打印。
全文摘要
本发明涉及打印技术领域,为了解决现有技术中倒置打印效率不高的问题,提供了一种倒置打印方法及装置,方法包括接收字符数据;将所述字符数据分为复数个子区域;按接收相反顺序依次对所述子区域进行倒置打印。本发明的有益效果在于,提高倒置打印的效率,并节省内存开销。
文档编号G06F3/12GK101833425SQ20091011899
公开日2010年9月15日 申请日期2009年3月11日 优先权日2009年3月11日
发明者丁进峰, 张新平, 徐伟伟, 杨现刚, 许加波 申请人:山东新北洋信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1