二维码符号的打印方法,打印机,驱动器及存储介质的制作方法

文档序号:6555905阅读:342来源:国知局
专利名称:二维码符号的打印方法,打印机,驱动器及存储介质的制作方法
技术领域
本发明涉及一个打印二维码符号的方法,以及实现此方法的打印机和打印机驱动程序。
所谓码符号(在下文中简称为“符号”)的典型例子就是一维和二维条形码。这些符号被用于以编码方式并且通常是机器可读的形式来表达(显示)某种信息,以后称为“显示数据”。
一维条形码是当今最常采用的符号。它们通常用于对产品号和其他信息编码,可以很容易地在零售商品上找到。
有两种常用类型的二维码将多个一维条形码垂直堆放、按垂直排列的“堆栈码”或“多行码”,以及矩阵码。矩阵码将码矩阵的交叉点置成黑或白来编码信息,因此与传统的一维条形码有着本质的不同。由于二维码具有比一维条形码更强大的信息编码能力,它得到了越来越多的使用。一维条形码,例如包含以一个水平或垂直序列表示的一行信息。另一方面,一个堆栈二维码包含多行垂直排列的一维条形码,矩阵码是依据特定规则将码矩阵的交叉点置成黑或白(开或关)来编码信息。
Code 49,Code 16K,PDF417,SuperCode,以及Ultracode是堆栈二维码的例子。VeriCode,Data Matrix(EC000-14-,ECC200,以及其他),CP Code,MaxiCode,Code 1,QRCode ModelII,Aztec Code是矩阵码的例子。二维码的普遍特征包括(1)能够比一维条形码显示(编码)更多数据的能力,(2)全向可读(读取方向不受限制),(3)编码二进制信息的能力,以及(4)更高的读码准确性和安全性(数据误差检测和校正)。
典型的一维条形码用条和空白(条之间的间隔)的组合来显示特定信息(显示数据)。条形码可以用条码扫描仪读取并将信息恢复成为人可以阅读的形式。因此,打印条码需要先将显示数据转换成条码的形式,然后由打印机打印。矩阵码也是如此。也就是,为了用在矩阵符号中的黑和白像素的组合来显示特定的信息,显示数据必须首先转换为矩阵码的形式,即符号,然后由打印机打印。
为了将信息编码成可以打印的符号数据,显示数据必须首先根据一个相应的码协议转换为特定码。需要注意的是,二维码符号的转换所涉及的并不仅仅是一个简单的码转换。更具体地,例如,转换要求在显示数据的开始处加开始码,在结束处加停止码,并且要产生误差校验码,执行数据压缩,以及由相应的码协议为所用类型的符号定义的其它步骤。因此,二维码采用的编码过程更复杂,不仅仅在于它可以显示更多的信息,同时也在于在某些情况下需要的压缩和误差校正编码操作。
通常,符号数据由运行在主机上的应用程序产生,该应用程序执行将显示数据转换成符号的位像(后面也叫“符号位模式”)的过程,再将产生的位像作为打印数据传送给打印机。然后,通过打印机打印这些打印数据,符号被打印出来。因此,符号由执行一个标准打印过程的打印机打印,即仅仅打印从主机接收到的位模式数据。
正如上面所指出的,将显示数据转换为实际被打印的符号数据的过程需要转换显示数据,并根据符号各自的类型而选择采用其它一些步骤。例如,产生一个PDF417码(一种类型的二维码)时,就需要数据压缩和产生误差校验码(ECC)。并且,PDF417协议允许三种用户可选择的不同的数据压缩模式以及9个(0-8)用户可选的ECC级别。
由于可以使用多种压缩模式以及9个不同的ECC级,因此被打印的符号的尺寸(高和宽)将随着具体内容以及符号中要编码的数据量而变化。这意味着,直到产生了实际的位模式才能知道最终被打印的符号的尺寸。
如上所述的符号,通常必须适合一个定义的打印区域或打印框架。但是,直到产生了实际的位模式(符号数据)才能知道二维符号的尺寸,这就需要在打印开始之前能够确认产生的符号是否能在定义的打印区域内打印。
此外,即使位模式数据相同,打印的符号的尺寸也会随着打印机分辨率的不同而不同。
本发明的目标之一就是提供一种方法和用于执行所述方法的打印机和打印机驱动程序,以便能够在符号打印之前确认包含要显示的数据的符号是否可以在定义的打印区域内打印。
这一目标是通过权利要求1中所述的方法、权利要求9所述的打印机、权利要求16所述的打印机驱动程序实现的。最佳的实施例是从属权利要求的主题。
在本发明的一个实施例中,打印机接收要打印的显示数据作为一个码符号。例如,显示数据可以以ASCII码存储在第一个存储设备中。然后符号图像生成装置将显示数据转换为符号数据,即最终被打印的符号的位模式或位图像。产生的符号数据可以存储在第二个存储设备中。第二个存储设备最好是打印缓冲器或者是和打印装置相连的其它类型的存储设备。根据控制主机设备的要求,从符号的位象计算符号的二维尺寸。然后将符号尺寸信息传送到主设备,作为符号的尺寸信息。
结果是,当要作为符号打印的数据被接收后,打印机将这些数据转换为特定类型的符号并打印。因此,主设备或特别是运行在主设备上的一个应用程序,只需要将显示数据传送给打印机。这样应用程序的开发就更容易了。另外,主设备可以在打印开始前确认符号的尺寸,因为如果这样请求的话,打印机会将符号尺寸传送给主设备。
根据本发明的一个实施例,当从主设备接收到一个打印指令或符号尺寸报告指令时,将从显示数据中产生符号的位像。例如,当接收到符号尺寸报告指令时,会在工作内存中产生位像,以便确认被打印的实际符号的尺寸。
根据本发明的一个打印机可以打印包括PDF417、SuperCode和UltraCode符号体系的堆栈二维码,以及包括VeriCode、Data matrix和MaxiCode符号体系的矩阵码。
执行依据本发明的方法的打印机例如可以由一个能够以点为单位打印的打印装置、一个CPU和内存、以及控制这些部件的控制程序实现。使用一个硬连线的逻辑设备也可以实现这些功能。
这样的控制程序可以被记录在计算机可读的数据存储介质上。因此,通过将实现依据本发明的方法的程序加载到包括打印装置、一个程序控制的CPU和内存的打印机就可以打印不同类型的符号。
不仅仅用打印机,本发明的必要功能也可以由逻辑上位于运行在主设备的应用程序以及和主设备相连的普通打印机之间的打印机驱动程序实现。打印机驱动程序根据来自应用程序的要求控制打印机,以便实现本发明的方法。
实现不同打印机驱动程序方法的计算机程序也可以记录在计算机可读数据存储介质上。
本发明的这些和其他的目标和特征,可以通过对下面结合附图进行的最佳实施例的详细描述来理解,其中同样的部件用相同的数字标注,其中

图1是依据本发明的第一个实施例的打印机的功能框图;图2是依据本发明的第二个实施例的打印机的功能框图;图3是可以从主机发送到打印机的例示符号打印控制指令的及其效果的列表;图4显示了将显示数据转换为用于符号打印的符号数据的过程;图5是依据本发明的打印机的符号打印过程的流程图;图6显示了一个打印样例,其中,符号的尺寸超过了第20页左上角区域所定义的打印区域21;图7显示了在一个标签上打印条形码类型的符号;图8是用CPU和ROM或RAM实现图1和图2所示的控制设备和存储设备的一个典型结构的功能框图;图9显示了在POS系统中的OPOS位置;图10是在依据本发明的打印机驱动程序中的符号打印过程的流程图;图11(a)显示了一个PDF417符号的格式,(b)显示了在PDF417符号的数据区域编码的显示数据的十进制表示;以及图12显示了一个PDF417码字的格式。
本发明可以用于打印任何类型的符号,在这里仅以例示方式参考PDF417符号、一种使用正在不断增长的堆栈二维码进行描述。
如上面指出的,PDF417是一种堆栈二维码。在图11(a)中显示了一个典型的PDF417符号。图11所示的PDF417由三个条形码组成。一个PDF417符号由一个垂直排布的条码行的堆栈构成。每个PDF417符号至少有3行,最多可有90行,每个符号最多可以包含1850个文本字符、2710个数字或1108字节的二进制数据。
下面描述PDF417符号的基本参数,以帮助理解后面对本发明的操作的描述。
在一个PDF417符号的四个边、即上边、下边、左边和右边的每一边上有一个静止区。如图11(a)所示,每行包括一个前导静止区、一个起始模式、一个左边指示列、包含编码信息和其它数据的符号字符(或者“码字”)、一个右边指示列、一个停止模式和一个结尾静止区。图11(b)显示了码字、即在图11(a)中显示的符号字符的数值。在这个例子中,行1中的码字包含值005810032,行2中包含值094179880,行3中包含值563781904。
为了生成要打印的PDF417符号数据,根据PDF417协议处理符号中要被编码的显示数据以产生码字。这些处理包括压缩、误差校正编码、添加格式化码字(诸如开始和停止模式)。
码字序列在图12中显示。每个码字包含4个黑色条和4个间隙(“元素”)以及总共17个模块。“模块”定义了在PDF417条码符号中的条形或间隙的最窄宽度。在PDF417符号中,所有的条和间隙的宽度是这个宽度的倍数,最多是6倍。模块的宽度可由用户定义。因此可以通过控制模块的宽度调整符号的全部尺寸。
PDF417协议允许每行有1到30个码字,3到90行,这样可以调整PDF417符号的宽高比以适应相应打印区域的形状。这就是说,在不改变PDF417符号内容的情况下,可以改变符号的宽高比,即可以改变宽对高的比例,以便符号可以在一个特定的打印区域内被打印。
PDF417协议也允许数据压缩和添加误差校正码。有三种数据压缩方式文字压缩、字节压缩和数值压缩。9个误差校正级0级到8级,允许不同的安全级别。
因此将所需要的显示数据转换到实际被打印的符号数据需要一个复杂的过程。
图1是依据本发明的第一个实施例的打印机的功能框图。这个打印机1通过接口2连接到主机90。主机90发送的数据通过接口2由接收器3接收,并存储在一个接收缓冲器4中。然后数据解释器5根据接收顺序对存储在接收缓冲器4中的数据做出解释。
如果接收到的数据是将要作为符号打印的显示数据,显示数据将被存储在显示数据存储器6中。然后存储在显示数据存储器6中的数据被符号图像生成器9转换成符号的位模式。符号图像生成器9由一个码转换处理器7和一个模式生成器8组成。
显示数据首先由码转换处理器7根据要被打印的符号的协议转换成码模式。转换成码模式并不是简单的将显示数据1∶1的转换为码字。更具体地说,例如,码模式转换包括数据压缩和误差校正编码以及以特定的开始和停止模式和左右边指示器格式化。
然后,被转换成特定格式的码字的符号数据由模式生成器8转换成为要打印的符号的位模式。然后符号位模式被存储在打印缓冲器10中。存储在打印缓冲器10中的符号由打印装置11打印。
如上所述的符号打印由来自主机的指令控制。注意,显示数据和符号的打印在上述操作中被联系在一起,使得符号通过发送显示数据来打印。可以提供各种不同的指令,包括发送显示数据的指令、请求通知主机从发送的显示数据产生的符号的尺寸的指令以及打印前面发送的显示数据的指令。
在下面我们假设主机设备命令打印机报告符号尺寸。由主机90发出的指令由数据解释器5做出解释。当数据解释器5检测到了一条符号尺寸报告命令时,数据解释器5使得存储在显示数据存储器6的数据输出到符号图像生成器9,同时将尺寸信息发射器12设置为活动状态。因此,尺寸信息发射器12从由符号图像生成器9产生的符号图像数据获得符号尺寸信息,并通过发射器13和接口2将尺寸数据发送给主机90。
图2是依据本发明的第二个实施例的打印机的功能框图。依据本实例的打印机不同于前面描述的打印机实例,它添加了窗尺寸存储器15和控制器14。依据该实施例的打印机可以执行由第一个实施例的打印机运行的相同过程,但提供附加功能。
控制器14控制打印机的全部操作,是用于通过整合地连接不同打印机部件的操作以运行程序来响应不同的命令的装置。
窗尺寸存储器15是存储打印框架的装置,打印框架就是打印符号的区域。打印框架由主机90设置,并发送到打印机1,由窗尺寸存储器15保存打印框架的尺寸。如果主机没有设置打印框架,将根据预先设置的缺省打印框架设置自动设置为一具体尺寸。
符号必须在定义的打印框架内打印。然而,如前如述,由于图像压缩和数据中加入的误差校验码,直到要打印的符号的实际位模式产生时才能知道二维码符号的实际打印尺寸。因此存在着在符号打印开始之前要确认符号是否能够打印在定义的打印框架内的情况。使用确认命令可以确认是否可以在打印框架内打印。当一条确认指令被收到、由数据解释器5解释并被识别为确认指令时,通知尺寸信息发射器12。
尺寸信息发射器12从窗口尺寸存储器15中获得打印框架信息,将其与来自模式生成器8的符号数据比较,以决定符号是否可以在打印框架内打印,并将比较结果发送给主机90。因此主机90可以知道符号是否可以在打印框架内打印。如果不能在打印框架内打印,主机90可以改变符号的长度和高度或者改变模块宽度,使得符号能够在打印框架内打印。
从主机中传送的样本符号打印控制命令在图3中给出。将会理解,图3中显示的命令的功能、命令代码和参数规定是仅以例子的形式显示的,除了显示的这些还可以使用其它的功能、代码和参数。多个功能可以被整合成为单独一条指令。这些指令由数据解释器5解释,在控制器14的控制下,由各部分合作执行对应于一特定指令的过程。图3中的指令将在下面详细描述。
(a)命令XXX1以参数a1a2定义了一个PDF417符号的宽度上列的数目。一个PDF417符号最多可以有30个数据列。在一个PDF417符号中的数据区域73的水平长度是列数乘以一个码字的宽度。码字宽度可以从当前的模块宽度计算出来。
(b)命令XXX2中以参数b1b2定义了符号中行的数目。一个PDF417符号至少有3行,最多有90行。数据区域73的垂直高度是一行高度乘以行数。
数据区域73中码字的总数等于数据的列数乘以行数。
(c)命令XXX3以参数c1c2定义了模块宽度。用来规定模块宽度的单位通常是打印机的分辨率(点)。
(d)命令XXX4以参数d1d2定义了每个码字的高度。码字高度通常是基于模块高度,规定为参数d1d2乘以模块宽度。
(e)命令XXX5以参数e规定了误差校正级0-8。有9个误差校正码字数目(等于2^(e+1))不同的误差校正级别。例如,在0级误差校正级别,有2个(2^1=2)误差校正码字。在8级误差校正级别,有512个(2^9=512)误差校正码字。
(f)命令XXX6以参数f设置了PDF417符号体系的选项。选项例如包括规定一个简化DF417符号。简化PDF417符号和图11(a)中的PDF417符号不同,它省略了右边指示器74和停止模式75,这使得码字的数目减少了。简化PDF417符号的缺点在于它只能在一个方向读取数据,因此牺牲了在读取方向上的自由度。
(g)命令XXX7将参数g1到gn中指定的显示数据存储在显示数据存储器6中。
(h)命令XXX8将显示数据存储器6中存储的显示数据以符号数据打印(即打印经过编码的存储显示数据)。应注意的是,当字符的尺寸大于打印框架的尺寸时不执行打印操作。
(i)命令XXX9将与存储在显示存储器6中的显示数据对应的符号的尺寸传送给主机90,即发送对存储的显示数据编码而生成的符号的尺寸。尺寸信息包括符号的水平尺寸和垂直尺寸(称为在PDF417中的X维和Y维),和/或符号能否在打印框架中打印。水平尺寸和垂直尺寸用点单位(打印机装置11的最小间距)、公制单位或其它测量单位表示。应该理解,文中的“水平”和“垂直”仅是描述性的,并不对实际的方向强加任何限制,只是表示二维方向是相互垂直的。
打印机1也可以设置为自动处理符号的行计数和列计数,以使符号可以适应打印框架。例如,通过将上面的命令XXX1和XXX2的参数a1a2和b1b2设定为0,可以将打印机命令为自动处理符号。
图11中显示了打印一个PDF417符号70的过程,以下将参考图4、图5进行描述。图4显示了为了打印符号而将显示数据转换为符号图像,图5显示了打印过程的流程图。
打印过程开始于,打印机的数据解释器5按照FIFO(先进先出)的顺序读取并解释存储在接收缓冲器4中的数据(步骤S501)。
如果接收到的数据是一个结构定义命令(上面的命令XXX1到XXX6),定义了符号70的基本结构(即数据列的数目,行数,模块宽度、行高、误差校正级别和选项)(步骤S502检测结构定义命令),将根据接收到的指令的参数设置符号的结构(步骤S503)。结构定义指令的设置被保存在打印机1的特定存储区域,未在图中显示,例如,控制器14或码转换处理器7。除非发生了改变,打印机可以保证一旦保存了这些设置,将会保留并供后续符号打印操作使用。另外,如果主机90没有规定符号的结构设置,可以用规定的预设缺省值定义符号结构。在这个示范实施例中假设要被打印的符号的数据列数是3,行数为3,模块宽度被设置为规定值。
一旦设置了基本的符号结构,主机90发送出符号70的显示数据。进一步在实施例中假设,主机90将显示数据ABCDEF(ASCII码)随指令XXX7发送给打印机1。当打印机1接收到显示数据并且数据解释器5判决接收到了命令XXX7(步骤S502,发送显示数据命令),在命令之后的数据将作为显示数据存储在显示数据存储器6中(步骤S504)。显示数据可以由主机以ASCII码的形式发送或者由打印机转换为ASCII码。
图4显示了将显示数据存储器6中的ASCII码显示数据转换为码字80,以及将得到的码字转换为一个代表要打印的符号70的位像(符号数据)的位模式的过程。
当主机90发送指令XXX9让打印机报告符号尺寸信息时(步骤S502检测到一个报告尺寸信息指令),打印机1将检测是否有打印数据存储在显示数据存储器6中。如果是(步骤S505返回Yes),码转换处理器7通过压缩显示数据和生成误差校正码,将显示数据转换为码字,然后加上起始和停止模式和左右边界指示字符,就产生了一个完整的码字块80。然后模式生成器8将这个码字块80转换为PDF417符号70的符号数据去打印(步骤S506)。
注意,在图4中仅仅显示了在文字压缩模式中通过将ABCDEF的ASCII码转换得到的码字块80的码字值001、063、125,没有显示起始模式、停止模式和边界指示字符。在本例中,遵循PDF417协议来将ASCII码转换成PDF417码的码字。然而,在这里转换协议并不重要,因此仅仅显示了转换的码字值。
在本例中尽管只有三个码字001、063和125,要注意最终的符号有三个数据列,并且有三行高。这是因为在PDF417码字中必须至少有三行高,同时在本例中的符号结构设置成三个数据列。因此除了显示数据码字之外还插入了垂直和水平误差校正码字和填充码字。
然后尺寸信息发射器12将符号70的水平尺寸X和垂直尺寸Y与保存在窗尺寸存储器15的特定打印框架尺寸比较。然后将比较的结果、水平尺寸X和垂直尺寸Y发送给主机90(步骤S507)。
如果主机90发送了命令XXX8要求符号打印(步骤S502检测到了打印符号指令),打印机1将检查是否有显示数据存储在显示数据存储器6。如果是(步骤S508返回Yes),则显示数据被转换为符号数据(步骤S509)。然后将符号70的尺寸和规定的打印框架相比样。如果符号70可以在打印框架内打印(步骤S510返回Yes),将会打印符号(步骤S511)。
如果接收的命令是一些其它命令(步骤S502检测到不是上面所述命令的命令),将根据命令执行相应步骤(步骤S512)。
如果在步骤S505或步骤S508中没有显示数据保存在显示数据存储器6中,并且如果在步骤S510中符号的尺寸超出了打印框架,将会给主机90发送相应的错误消息。
图6、图7显示了打印框架和符号尺寸之间的关系。图6显示了在第20页的左上部设置一个打印框架21的情况。如果要打印的符号在水平方向上太长,如打印图像轮廓22所示,则打印图像22的右边结束处将会和打印框架21的右边的文本重叠。这使得阅读打印框架21右边的符号和文字变得很困难。如打印图像轮廓23所示,符号相对于打印框架21太高。在这种情况下,符号23的底部将会和在打印框架21下面打印的文字重叠,也会发生同样问题,即难以阅读符号和符号打印框架下面的文字。
如果符号的高度或宽度超过了打印框架21,并且另一边留有空间(例如,如果符号太高但比打印框架窄),那么可改变符号的宽高比,使符号适应打印框架。例如,在一个太宽的符号22的情况下,可以减少水平列的数目,增加行数,使符号更窄更长。同样,为了打印太高的符号23,可以减少行数,增加列数,使符号适应打印框架。
也有一些情况,即使通过调整行列数目改变了符号的形状,也不能在打印框架内打印符号。在这样的情况下,可以选择减少模块即符号字符的最小单位以减少符号的整个尺寸。
因此通过在符号打印前决定符号是否可以在打印框架内打印,可以改变符号形状使符号适应打印框架。然而,为了实现这一点,必须要在开始打印前知道打印符号的尺寸。如前所述,在此实例中,通过命令XXX9,可以从打印机1获得这个尺寸信息。运行在主机上的软件应用程序(未在图中显示)使用从打印机1获得的尺寸信息,来检查符号尺寸,并通过必要的手段,例如改变符号比例或修改显示数据等,来修改符号使符号适应打印框架。
用上面的指令XXX1至XXX6去改变打印机1的符号结构设置,来实现改变符号尺寸。或者,应用程序可以改变打印框架的定义而不是改变符号的尺寸。
图7显示了一个在标签26上打印符号、例如条形码。标签纸25通常包含多个标签26。标签26的背面有粘胶,当符号打印以后,可以从标签纸25撕下标签26,用到商品或其它物品上。因此,在每一个标签26上准确地打印符号十分重要。
图8是用一个程序控制中央处理单元(CPU)60和存储器、例如RAM61和ROM62来实现图1或图2所示的各种控制部分和存储设备的一个典型组成的功能框图。
打印头31、马达32、铁心33以及驱动这些部件的打印装置驱动电路34构成了打印装置11,它执行与符号打印相关的各种物理操作,包括传送打印纸,打印,切纸。各种检测器35也连接到CPU30上,包括切纸错误传感器,夹纸传感器和其它的错误状态传感器,开盖传感器,纸张位置传感器,如果打印机是喷墨打印机,还有一个剩余墨水传感器。来自这些传感器的检测结果输入给CPU。
数据和一个能够存储上述显示数据、将数据转换成符号数据、发送符号尺寸信息并完成其他功能和过程的软件(包括固件)存储在ROM36和/或RAM37中,并由CPU30读出,去完成这些不同的功能。完成这些过程的软件可以存储在计算机的可读数据存储介质上。因此,计算机从数据存储介质中读出软件去控制打印机,并由此实现了依据本发明的打印机和打印方法。
如上所述,通过使用CPU、内存和打印装置来实现本发明,可以很容易地实现符号转换过程,并且从多个打印符号中选择出需要的符号。
本发明也可以应用到控制打印机的打印驱动程序。下面以OPOS(零售POS的OLE)为例描述打印机驱动程序。
OPOS是一个定义了POS系统设备(例如打印机和显示器)的标准接口的国际标准。OPOS标准对象(驱动器)给应用程序开发者提供了API(应用程序设计接口)函数,这些API函数使用了由POS系统主机设备上的Windows(R)操作系统支持的OLE(对象链接和嵌入)控制,简化了应用程序开发过程。一个OPOS标准对象在下面简称为一个OPOS对象。
图9说明了在一个POS系统中OPOS对象的角色(定位)。如图9所示,OPOS对象是位于操作系统和控制POS系统设备的应用程序之间的软件结构。OPOS对象根据定义的规则标准化了主设备(PC)和POS系统设备之间的接口。
OPOS对象有二层控制对象(CO)层和服务对象(SO)层。控制对象是为每一个设备类提供的对象,比如显示和与应用程序的控制接口。服务对象是在设备级上提供的对象,例如,对于特定的打印模式,并允许通过操作系统去控制特定设备。因此服务对象包含设备的特有信息。例如对于打印机,服务对象包括诸如打印机分辨率、加载的字体、打印列数等信息。如果需要,服务对象也可以从设备读取这些特定的信息。
通过服务对象的方法和属性,应用程序可以按需控制特定设备。通过事件和属性可得到设备控制的结果。
一个OPOS对象将从应用程序到设备的过程请求转换为由设备支持的命令,并且以状态报告的方式,接收来自设备的处理结果。
下面参考图10描述打印一个PDF417符号的过程。以下假设应用程序向打印机发送了一个打印符号命令和显示数据。已经设置了结构定义信息。
在接收到了来自应用程序的打印符号命令和显示数据后(步骤S1001),OPOS对象按上文解释将显示数据转换为位像数据(步骤S1002)。OPOS对象可以写入以便转换过程所需的结构定义信息可以存储在服务对象或者存储在打印机中,并在需要时由此读出。
然后,将由位像表示的符号的尺寸与定义的打印框架比较以确定符号是否可以在打印框架内打印(步骤S1003)。对于基本结构定义信息,打印框架信息可以保存在服务对象或打印机中,并在需要时由此读出。
如果可以在打印框架内打印(步骤S1004返回Yes),符号的位象数据将被送入打印机打印(步骤S1005)。如果符号大于定义的打印框架(步骤S1004返回No),就通知应用程序(步骤S1006),该过程结束。
当显示数据同报告尺寸信息命令一同从应用程序发送时,也可使用相同的过程。
通过在主机安装设备驱动器来处理将要显示的信息转换为要打印的符号的位像的过程,应用程序的开发就更加简单。
也可以有效地利用主设备强大的处理能力以缩短处理时间。还可以在打印机上缩短打印命令的处理。
如上所述,因为打印机或打印机驱动程序可以响应运行在主设备上的应用程序的请求,返回符号尺寸信息,所以本发明可以使应用程序不执行符号转换过程就确认符号的尺寸。
权利要求
1.一种打印二维码符号的方法,所述二维码符号用编码的方式表示显示数据,所述方法由能够互相通信的一台主机设备(90)和一台打印机(1)来实现,包括如下步骤在主机设备(90)方面(a)向打印机(1)发送要作为码符号(70)来打印的显示数据;在打印机(1)方面(b)接收来自主机设备(90)的显示数据并且存储所接收的显示数据(c)根据预定的码协议,对存储的显示数据进行编码,并将编码后的数据格式化;(d)由格式化后的数据生成代表码符号(70)的位像数据;在主机设备(90)方面(e)向打印机(1)发送一条符号尺寸报告请求,命令打印机(1)向主机设备(90)发送符号尺寸;在打印机(1)方面(f)响应来自主机设备(90)的符号尺寸报告请求,根据步骤(d)生成的位像数据计算出码符号(70)在每一个二维方向上的尺寸;(g)作为符号尺寸报告响应信息,向主机设备(90)发送对应于符号尺寸的信息;以及(h)依照所述位像数据打印码符号(70)。
2.权利要求1所述的方法,其中,步骤(c)包括数据压缩和产生一个误差校正码的过程。
3.权利要求1或2所述的方法,其中,步骤(g)包括比较符号尺寸和规定的打印区域,并且发送指示码符号(70)是否适合所述打印区域的信息。
4.权利要求3所述的方法,进一步包括在主机设备(90)方面(i)向打印机(1)发送一条打印请求,命令打印机(1)打印码符号(70);其中,步骤(h)包括,当码符号尺寸没有超过所述打印区域时,打印位模式图像以响应所述打印请求。
5.权利要求1到4的任何一个所述的方法,其中,执行步骤(c)、(d)、(f)和(g),以响应来自主机设备(90)的一条尺寸报告请求。
6.权利要求1到4的任何一个所述的方法,其中,步骤(e)包括步骤(i),并且符号尺寸报告请求和打印请求是同一个请求,以及,执行步骤(c)、(d)、(f)到(g)以响应这个请求。
7.权利要求1到6的任何一个所述的方法,其中,所述码符号(70)是一个包括多行条形码和矩阵条形码的二维码条形码符号。
8.一个计算机可读数据存储介质,它载有能够实现权利要求1到7的任何一个权利要求所定义的方法的计算机程序手段。
9.一个用在权利要求1到7的任何一个权利要求所定义的方法中的打印机,该打印机能够和主机设备(90)交换数据并且能够打印二维码符号(70),所述二维码符号用编码方式表示显示数据,所述打印机包括接收装置(2,3),用于接收来自主机设备(90)的显示数据,以作为码符号(70)打印;图像生成装置(9),依据预先设定的码协议对显示数据进行编码,并且将编码后的显示数据格式化,由格式化后的数据生成表示符号的位像数据;计算装置(8),由位图像数据计算出码符号(70)在每一个二维方向上的尺寸;发送装置(2,12,13),向主机设备(90)发送对应于计算出的符号尺寸的符号尺寸报告响应信息;以及打印装置,依照所述位像数据打印码符号(70)。
10.权利要求9所述的打印机,其中,图像生成装置(9)包括用于数据压缩以及产生误差校正码的装置。
11.权利要求9或10所述的打印机,其中,图像生成装置(9)适于产生所述位像数据以响应来自主机设备(90)的请求。
12.上述任何一个权利要求所述的打印机,其中,发送装置(2,12,13)包括比较符号尺寸和规定的打印区域的比较装置,并且,其中,所述符号尺寸报告响应信息是指示符号(70)是否能够适合上述打印区域的信息。
13.权利要求9到12的任何一个所述的打印机,其中,发送装置(2,12,13)适于发送所述符号尺寸报告响应信息以响应来自主机设备(90)的请求。
14.权利要求12所述的打印机,其中,当所述符号尺寸报告响应信息表明码符号(70)可以在所述打印区域打印时,打印装置适于打印码符号(70)以响应来自主机设备(90)的打印请求。
15.权利要求9到14的任何一个所述的打印机,其中,所述码符号(70)是一个包含多行条形码和矩阵条形码的二维码条形码符号。
16.一个用于执行权利要求1到8的任何一个权利要求所定义的方法的打印机驱动程序,所述打印机驱动程序将运行在主机设备(90)上的应用程序和打印机(1)相连接,并且根据来自应用程序的请求控制打印机,所述打印机驱动程序包括接收装置,用于接收来自应用程序的显示数据,以作为码符号(70)打印;图像生成装置,依据预先设定的码协议对显示数据编码,并且将编码后的显示数据格式化,由格式化后的数据生成表示符号的位像数据;计算装置,用于由位像数据计算出码符号在每一个二维方向上的尺寸;第一发送装置,向应用程序发送对应于计算出的码符号尺寸的符号尺寸报告响应信息;以及第二发送装置,向打印机(1)发送所述位像数据。
17.权利要求16所述的打印机驱动程序,其中,驱动程序是一个OPOS对象其中,第一个对象提供到应用程序的接口,以及,第二个对象为第一个对象提供到打印机(1)的接口。
18.权利要求17所述的打印机驱动程序,其中,第一个对象包括所述接收装置和所述第一发送装置,以及第二个对象包括图像生成装置、计算装置和第二发送装置。
19.一个计算机可读存储介质,载有实现权利要求16到18的任何一个权利要求所定义的打印机驱动程序的计算机程序手段。
全文摘要
一个条形码或类似的码符号可以由打印这些符号的打印机(1)在一个规定的打印区域内精确地打印。打印机(1)有一个将显示信息转换为符号的转换器和一个向主机设备(90)报告转换后的符号尺寸的装置。为了打印,主机设备仅仅向打印机(1)发送特定的指令和表示要被打印的符号的文本数据。于是,主机就能够确认是否可以在特定区域内进行打印。
文档编号G06K1/12GK1329328SQ0111787
公开日2002年1月2日 申请日期2001年3月31日 优先权日2000年4月14日
发明者小圷直彦, 武井贞介 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1