專(zhuān)利名稱(chēng):二維碼符號(hào)的打印方法,和打印機(jī)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一個(gè)打印二維碼符號(hào)的方法,以及實(shí)現(xiàn)此方法的打印機(jī)和打印機(jī)驅(qū)動(dòng)程序。
背景技術(shù):
所謂碼符號(hào)(在下文中簡(jiǎn)稱(chēng)為“符號(hào)”)的典型例子就是一維和二維條形碼。這些符號(hào)被用于以編碼方式并且通常是機(jī)器可讀的形式來(lái)表達(dá)(顯示)某種信息,以后稱(chēng)為“顯示數(shù)據(jù)”。
一維條形碼是當(dāng)今最常采用的符號(hào)。它們通常用于對(duì)產(chǎn)品號(hào)和其他信息編碼,可以很容易地在零售商品上找到。
有兩種常用類(lèi)型的二維碼將多個(gè)一維條形碼垂直堆放、按垂直排列的“堆棧碼”或“多行碼”,以及矩陣碼。矩陣碼將碼矩陣的交叉點(diǎn)置成黑或白來(lái)編碼信息,因此與傳統(tǒng)的一維條形碼有著本質(zhì)的不同。由于二維碼具有比一維條形碼更強(qiáng)大的信息編碼能力,它得到了越來(lái)越多的使用。一維條形碼,例如包含以一個(gè)水平或垂直序列表示的一行信息。另一方面,一個(gè)堆棧二維碼包含多行垂直排列的一維條形碼,矩陣碼是依據(jù)特定規(guī)則將碼矩陣的交叉點(diǎn)置成黑或白(開(kāi)或關(guān))來(lái)編碼信息。
Code 49,Code 16K,PDF417,SuperCode,以及Ultracode是堆棧二維碼的例子。VeriCode,Data Matrix(ECC000-14-,ECC200,以及其他),CPCode,MaxiCode,Code 1,QRCode Model II,Aztec Code是矩陣碼的例子。二維碼的普遍特征包括(1)能夠比一維條形碼顯示(編碼)更多數(shù)據(jù)的能力,(2)全向可讀(讀取方向不受限制),(3)編碼二進(jìn)制信息的能力,以及(4)更高的讀碼準(zhǔn)確性和安全性(數(shù)據(jù)誤差檢測(cè)和校正)。
典型的一維條形碼用條和空白(條之間的間隔)的組合來(lái)顯示特定信息(顯示數(shù)據(jù))。條形碼可以用條碼掃描儀讀取并將信息恢復(fù)成為人可以閱讀的形式。因此,打印條碼需要先將顯示數(shù)據(jù)轉(zhuǎn)換成條碼的形式,然后由打印機(jī)打印。矩陣碼也是如此。也就是,為了用在矩陣符號(hào)中的黑和白像素的組合來(lái)顯示特定的信息,顯示數(shù)據(jù)必須首先轉(zhuǎn)換為矩陣碼的形式,即符號(hào),然后由打印機(jī)打印。
為了將信息編碼成可以打印的符號(hào)數(shù)據(jù),顯示數(shù)據(jù)必須首先根據(jù)一個(gè)相應(yīng)的碼協(xié)議轉(zhuǎn)換為特定碼。需要注意的是,二維碼符號(hào)的轉(zhuǎn)換所涉及的并不僅僅是一個(gè)簡(jiǎn)單的碼轉(zhuǎn)換。更具體地,例如,轉(zhuǎn)換要求在顯示數(shù)據(jù)的開(kāi)始處加開(kāi)始碼,在結(jié)束處加停止碼,并且要產(chǎn)生誤差校驗(yàn)碼,執(zhí)行數(shù)據(jù)壓縮,以及由相應(yīng)的碼協(xié)議為所用類(lèi)型的符號(hào)定義的其它步驟。因此,二維碼采用的編碼過(guò)程更復(fù)雜,不僅僅在于它可以顯示更多的信息,同時(shí)也在于在某些情況下需要的壓縮和誤差校正編碼操作。
通常,符號(hào)數(shù)據(jù)由運(yùn)行在主機(jī)上的應(yīng)用程序產(chǎn)生,該應(yīng)用程序執(zhí)行將顯示數(shù)據(jù)轉(zhuǎn)換成符號(hào)的位像(后面也叫“符號(hào)位模式”)的過(guò)程,再將產(chǎn)生的位像作為打印數(shù)據(jù)傳送給打印機(jī)。然后,通過(guò)打印機(jī)打印這些打印數(shù)據(jù),符號(hào)被打印出來(lái)。因此,符號(hào)由執(zhí)行一個(gè)標(biāo)準(zhǔn)打印過(guò)程的打印機(jī)打印,即僅僅打印從主機(jī)接收到的位模式數(shù)據(jù)。
正如上面所指出的,將顯示數(shù)據(jù)轉(zhuǎn)換為實(shí)際被打印的符號(hào)數(shù)據(jù)的過(guò)程需要轉(zhuǎn)換顯示數(shù)據(jù),并根據(jù)符號(hào)各自的類(lèi)型而選擇采用其它一些步驟。例如,產(chǎn)生一個(gè)PDF417碼(一種類(lèi)型的二維碼)時(shí),就需要數(shù)據(jù)壓縮和產(chǎn)生誤差校驗(yàn)碼(ECC)。并且,PDF417協(xié)議允許三種用戶(hù)可選擇的不同的數(shù)據(jù)壓縮模式以及9個(gè)(0-8)用戶(hù)可選的ECC級(jí)別。
由于可以使用多種壓縮模式以及9個(gè)不同的ECC級(jí),因此被打即的符號(hào)的尺寸(高和寬)將隨著具體內(nèi)容以及符號(hào)中要編碼的數(shù)據(jù)量而變化。這意味著,直到產(chǎn)生了實(shí)際的位模式才能知道最終被打印的符號(hào)的尺寸。
如上所述的符號(hào),通常必須適合一個(gè)定義的打印區(qū)域或打印框架。但是,直到產(chǎn)生了實(shí)際的位模式(符號(hào)數(shù)據(jù))才能知道二維符號(hào)的尺寸,這就需要在打印開(kāi)始之前能夠確認(rèn)產(chǎn)生的符號(hào)是否能在定義的打印區(qū)域內(nèi)打印。
此外,即使位模式數(shù)據(jù)相同,打印的符號(hào)的尺寸也會(huì)隨著打印機(jī)分辨率的不同而不同。
發(fā)明內(nèi)容
本發(fā)明的目標(biāo)之一就是提供一種方法和用于執(zhí)行所述方法的打印機(jī)和打印機(jī)驅(qū)動(dòng)程序,以便能夠在符號(hào)打印之前確認(rèn)包含要顯示的數(shù)據(jù)的符號(hào)是否可以在定義的打印區(qū)域內(nèi)打印。
這一目標(biāo)是以下技術(shù)方案實(shí)現(xiàn)的。最佳的實(shí)施例是從屬權(quán)利要求的主題。
在本發(fā)明的一個(gè)實(shí)施例中,打印機(jī)接收要打印的顯示數(shù)據(jù)作為一個(gè)碼符號(hào)。例如,顯示數(shù)據(jù)可以以ASCII碼存儲(chǔ)在第一個(gè)存儲(chǔ)設(shè)備中。然后符號(hào)圖像生成裝置將顯示數(shù)據(jù)轉(zhuǎn)換為符號(hào)數(shù)據(jù),即最終被打印的符號(hào)的位模式或位圖像。產(chǎn)生的符號(hào)數(shù)據(jù)可以存儲(chǔ)在第二個(gè)存儲(chǔ)設(shè)備中。第二個(gè)存儲(chǔ)設(shè)備最好是打印緩沖器或者是和打印裝置相連的其它類(lèi)型的存儲(chǔ)設(shè)備。根據(jù)控制主機(jī)設(shè)備的要求,從符號(hào)的位象計(jì)算符號(hào)的二維尺寸。然后將符號(hào)尺寸信息傳送到主設(shè)備,作為符號(hào)的尺寸信息。
結(jié)果是,當(dāng)要作為符號(hào)打印的數(shù)據(jù)被接收后,打印機(jī)將這些數(shù)據(jù)轉(zhuǎn)換為特定類(lèi)型的符號(hào)并打印。因此,主設(shè)備或特別是運(yùn)行在主設(shè)備上的一個(gè)應(yīng)用程序,只需要將顯示數(shù)據(jù)傳送給打印機(jī)。這樣應(yīng)用程序的開(kāi)發(fā)就更容易了。另外,主設(shè)備可以在打印開(kāi)始前確認(rèn)符號(hào)的尺寸,因?yàn)槿绻@樣請(qǐng)求的話(huà),打印機(jī)會(huì)將符號(hào)尺寸傳送給主設(shè)備。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)從主設(shè)備接收到一個(gè)打印指令或符號(hào)尺寸報(bào)告指令時(shí),將從顯示數(shù)據(jù)中產(chǎn)生符號(hào)的位像。例如,當(dāng)接收到符號(hào)尺寸報(bào)告指令時(shí),會(huì)在工作內(nèi)存中產(chǎn)生位像,以便確認(rèn)被打印的實(shí)際符號(hào)的尺寸。
根據(jù)本發(fā)明的一個(gè)打印機(jī)可以打印包括PDF417、SuperCode和UltraCode符號(hào)體系的堆棧二維碼,以及包括VeriCode、Data matrix和MaxiCode符號(hào)體系的矩陣碼。
執(zhí)行依據(jù)本發(fā)明的方法的打印機(jī)例如可以由一個(gè)能夠以點(diǎn)為單位打印的打印裝置、一個(gè)CPU和內(nèi)存、以及控制這些部件的控制程序?qū)崿F(xiàn)。使用一個(gè)硬連線(xiàn)的邏輯設(shè)備也可以實(shí)現(xiàn)這些功能。
這樣的控制程序可以被記錄在計(jì)算機(jī)可讀的數(shù)據(jù)存儲(chǔ)介質(zhì)上。因此,通過(guò)將實(shí)現(xiàn)依據(jù)本發(fā)明的方法的程序加載到包括打印裝置、一個(gè)程序控制的CPU和內(nèi)存的打印機(jī)就可以打印不同類(lèi)型的符號(hào)。
不僅僅用打印機(jī),本發(fā)明的必要功能也可以由邏輯上位于運(yùn)行在主設(shè)備的應(yīng)用程序以及和主設(shè)備相連的普通打印機(jī)之間的打印機(jī)驅(qū)動(dòng)程序?qū)崿F(xiàn)。打印機(jī)驅(qū)動(dòng)程序根據(jù)來(lái)自應(yīng)用程序的要求控制打印機(jī),以便實(shí)現(xiàn)本發(fā)明的方法。
實(shí)現(xiàn)不同打印機(jī)驅(qū)動(dòng)程序方法的計(jì)算機(jī)程序也可以記錄在計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)介質(zhì)上。
本發(fā)明的這些和其他的目標(biāo)和特征,可以通過(guò)對(duì)下面結(jié)合附圖進(jìn)行的最佳實(shí)施例的詳細(xì)描述來(lái)理解,其中同樣的部件用相同的數(shù)字標(biāo)注,其中圖1是依據(jù)本發(fā)明的第一個(gè)實(shí)施例的打印機(jī)的功能框圖;圖2是依據(jù)本發(fā)明的第二個(gè)實(shí)施例的打印機(jī)的功能框圖;圖3是可以從主機(jī)發(fā)送到打印機(jī)的例示符號(hào)打印控制指令的及其效果的列表;圖4顯示了將顯示數(shù)據(jù)轉(zhuǎn)換為用于符號(hào)打印的符號(hào)數(shù)據(jù)的過(guò)程;圖5是依據(jù)本發(fā)明的打印機(jī)的符號(hào)打印過(guò)程的流程圖;圖6顯示了一個(gè)打印樣例,其中,符號(hào)的尺寸超過(guò)了第20頁(yè)左上角區(qū)域所定義的打印區(qū)域21;圖7顯示了在一個(gè)標(biāo)簽上打印條形碼類(lèi)型的符號(hào);圖8是用CPU和ROM或RAM實(shí)現(xiàn)圖1和圖2所示的控制設(shè)備和存儲(chǔ)設(shè)備的一個(gè)典型結(jié)構(gòu)的功能框圖;圖9顯示了在POS系統(tǒng)中的OPOS位置;
圖10是在依據(jù)本發(fā)明的打印機(jī)驅(qū)動(dòng)程序中的符號(hào)打印過(guò)程的流程圖;圖11(a)顯示了一個(gè)PDF417符號(hào)的格式,(b)顯示了在PDF417符號(hào)的數(shù)據(jù)區(qū)域編碼的顯示數(shù)據(jù)的十進(jìn)制表示;以及圖12顯示了一個(gè)PDF417碼字的格式。
具體實(shí)施例方式
本發(fā)明可以用于打印任何類(lèi)型的符號(hào),在這里僅以例示方式參考PDF417符號(hào)、一種使用正在不斷增長(zhǎng)的堆棧二維碼進(jìn)行描述。
如上面指出的,PDF417是一種堆棧二維碼。在圖11(a)中顯示了一個(gè)典型的PDF417符號(hào)。圖11所示的PDF417由三個(gè)條形碼組成。一個(gè)PDF417符號(hào)由一個(gè)垂直排布的條碼行的堆棧構(gòu)成。每個(gè)PDF417符號(hào)至少有3行,最多可有90行,每個(gè)符號(hào)最多可以包含1850個(gè)文本字符、2710個(gè)數(shù)字或1108字節(jié)的二進(jìn)制數(shù)據(jù)。
下面描述PDF417符號(hào)的基本參數(shù),以幫助理解后面對(duì)本發(fā)明的操作的描述。
在一個(gè)PDF417符號(hào)的四個(gè)邊、即上邊、下邊、左邊和右邊的每一邊上有一個(gè)靜止區(qū)。如圖11(a)所示,每行包括一個(gè)前導(dǎo)靜止區(qū)、一個(gè)起始模式、一個(gè)左邊指示列、包含編碼信息和其它數(shù)據(jù)的符號(hào)字符(或者“碼字”)、一個(gè)右邊指示列、一個(gè)停止模式和一個(gè)結(jié)尾靜止區(qū)。圖11(b)顯示了碼字、即在圖11(a)中顯示的符號(hào)字符的數(shù)值。在這個(gè)例子中,行1中的碼字包含值005 810 032,行2中包含值094 179 880,行3中包含值563 781 904。
為了生成要打印的PDF417符號(hào)數(shù)據(jù),根據(jù)PDF417協(xié)議處理符號(hào)中要被編碼的顯示數(shù)據(jù)以產(chǎn)生碼字。這些處理包括壓縮、誤差校正編碼、添加格式化碼字(諸如開(kāi)始和停止模式)。
碼字序列在圖12中顯示。每個(gè)碼字包含4個(gè)黑色條和4個(gè)間隙(“元素”)以及總共17個(gè)模塊?!澳K”定義了在PDF417條碼符號(hào)中的條形或間隙的最窄寬度。在PDF417符號(hào)中,所有的條和間隙的寬度是這個(gè)寬度的倍數(shù),最多是6倍。模塊的寬度可由用戶(hù)定義。因此可以通過(guò)控制模塊的寬度調(diào)整符號(hào)的全部尺寸。
PDF417協(xié)議允許每行有1到30個(gè)碼字,3到90行,這樣可以調(diào)整PDF417符號(hào)的寬高比以適應(yīng)相應(yīng)打印區(qū)域的形狀。這就是說(shuō),在不改變PDF417符號(hào)內(nèi)容的情況下,可以改變符號(hào)的寬高比,即可以改變寬對(duì)高的比例,以便符號(hào)可以在一個(gè)特定的打印區(qū)域內(nèi)被打印。
PDF417協(xié)議也允許數(shù)據(jù)壓縮和添加誤差校正碼。有三種數(shù)據(jù)壓縮方式文字壓縮、字節(jié)壓縮和數(shù)值壓縮。9個(gè)誤差校正級(jí)0級(jí)到8級(jí),允許不同的安全級(jí)別。
因此將所需要的顯示數(shù)據(jù)轉(zhuǎn)換到實(shí)際被打印的符號(hào)數(shù)據(jù)需要一個(gè)復(fù)雜的過(guò)程。
圖1是依據(jù)本發(fā)明的第一個(gè)實(shí)施例的打印機(jī)的功能框圖。這個(gè)打印機(jī)1通過(guò)接口2連接到主機(jī)90。主機(jī)90發(fā)送的數(shù)據(jù)通過(guò)接口2由接收器3接收,并存儲(chǔ)在一個(gè)接收緩沖器4中。然后數(shù)據(jù)解釋器5根據(jù)接收順序?qū)Υ鎯?chǔ)在接收緩沖器4中的數(shù)據(jù)做出解釋。
如果接收到的數(shù)據(jù)是將要作為符號(hào)打印的顯示數(shù)據(jù),顯示數(shù)據(jù)將被存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6中。然后存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6中的數(shù)據(jù)被符號(hào)圖像生成器9轉(zhuǎn)換成符號(hào)的位模式。符號(hào)圖像生成器9由一個(gè)碼轉(zhuǎn)換處理器7和一個(gè)模式生成器8組成。
顯示數(shù)據(jù)首先由碼轉(zhuǎn)換處理器7根據(jù)要被打印的符號(hào)的協(xié)議轉(zhuǎn)換成碼模式。轉(zhuǎn)換成碼模式并不是簡(jiǎn)單的將顯示數(shù)據(jù)1∶1的轉(zhuǎn)換為碼字。更具體地說(shuō),例如,碼模式轉(zhuǎn)換包括數(shù)據(jù)壓縮和誤差校正編碼以及以特定的開(kāi)始和停止模式和左右邊指示器格式化。
然后,被轉(zhuǎn)換成特定格式的碼字的符號(hào)數(shù)據(jù)由模式生成器8轉(zhuǎn)換成為要打印的符號(hào)的位模式。然后符號(hào)位模式被存儲(chǔ)在打印緩沖器10中。存儲(chǔ)在打印緩沖器10中的符號(hào)由打印裝置11打印。
如上所述的符號(hào)打印由來(lái)自主機(jī)的指令控制。注意,顯示數(shù)據(jù)和符號(hào)的打印在上述操作中被聯(lián)系在一起,使得符號(hào)通過(guò)發(fā)送顯示數(shù)據(jù)來(lái)打印。可以提供各種不同的指令,包括發(fā)送顯示數(shù)據(jù)的指令、請(qǐng)求通知主機(jī)從發(fā)送的顯示數(shù)據(jù)產(chǎn)生的符號(hào)的尺寸的指令以及打印前面發(fā)送的顯示數(shù)據(jù)的指令。
在下面我們假設(shè)主機(jī)設(shè)備命令打印機(jī)報(bào)告符號(hào)尺寸。由主機(jī)90發(fā)出的指令由數(shù)據(jù)解釋器5做出解釋。當(dāng)數(shù)據(jù)解釋器5檢測(cè)到了一條符號(hào)尺寸報(bào)告命令時(shí),數(shù)據(jù)解釋器5使得存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6的數(shù)據(jù)輸出到符號(hào)圖像生成器9,同時(shí)將尺寸信息發(fā)射器12設(shè)置為活動(dòng)狀態(tài)。因此,尺寸信息發(fā)射器12從由符號(hào)圖像生成器9產(chǎn)生的符號(hào)圖像數(shù)據(jù)獲得符號(hào)尺寸信息,并通過(guò)發(fā)射器13和接口2將尺寸數(shù)據(jù)發(fā)送給主機(jī)90。
圖2是依據(jù)本發(fā)明的第二個(gè)實(shí)施例的打印機(jī)的功能框圖。依據(jù)本實(shí)例的打印機(jī)不同于前面描述的打印機(jī)實(shí)例,它添加了窗尺寸存儲(chǔ)器15和控制器14。依據(jù)該實(shí)施例的打印機(jī)可以執(zhí)行由第一個(gè)實(shí)施例的打印機(jī)運(yùn)行的相同過(guò)程,但提供附加功能。
控制器14控制打印機(jī)的全部操作,是用于通過(guò)整合地連接不同打印機(jī)部件的操作以運(yùn)行程序來(lái)響應(yīng)不同的命令的裝置。
窗尺寸存儲(chǔ)器15是存儲(chǔ)打印框架的裝置,打印框架就是打印符號(hào)的區(qū)域。打印框架由主機(jī)90設(shè)置,并發(fā)送到打印機(jī)1,由窗尺寸存儲(chǔ)器15保存打印框架的尺寸。如果主機(jī)沒(méi)有設(shè)置打印框架,將根據(jù)預(yù)先設(shè)置的缺省打印框架設(shè)置自動(dòng)設(shè)置為一具體尺寸。
符號(hào)必須在定義的打印框架內(nèi)打印。然而,如前如述,由于圖像壓縮和數(shù)據(jù)中加入的誤差校驗(yàn)碼,直到要打印的符號(hào)的實(shí)際位模式產(chǎn)生時(shí)才能知道二維碼符號(hào)的實(shí)際打印尺寸。因此存在著在符號(hào)打印開(kāi)始之前要確認(rèn)符號(hào)是否能夠打印在定義的打印框架內(nèi)的情況。使用確認(rèn)命令可以確認(rèn)是否可以在打印框架內(nèi)打印。當(dāng)一條確認(rèn)指令被收到、由數(shù)據(jù)解釋器5解釋并被識(shí)別為確認(rèn)指令時(shí),通知尺寸信息發(fā)射器12。
尺寸信息發(fā)射器12從窗口尺寸存儲(chǔ)器15中獲得打印框架信息,將其與來(lái)自模式生成器8的符號(hào)數(shù)據(jù)比較,以決定符號(hào)是否可以在打印框架內(nèi)打印,并將比較結(jié)果發(fā)送給主機(jī)90。因此主機(jī)90可以知道符號(hào)是否可以在打印框架內(nèi)打印。如果不能在打印框架內(nèi)打印,主機(jī)90可以改變符號(hào)的長(zhǎng)度和高度或者改變模塊寬度,使得符號(hào)能夠在打印框架內(nèi)打印。
從主機(jī)中傳送的樣本符號(hào)打印控制命令在圖3中給出。將會(huì)理解,圖3中顯示的命令的功能、命令代碼和參數(shù)規(guī)定是僅以例子的形式顯示的,除了顯示的這些還可以使用其它的功能、代碼和參數(shù)。多個(gè)功能可以被整合成為單獨(dú)一條指令。這些指令由數(shù)據(jù)解釋器5解釋?zhuān)诳刂破?4的控制下,由各部分合作執(zhí)行對(duì)應(yīng)于一特定指令的過(guò)程。圖3中的指令將在下面詳細(xì)描述。
(a)命令XXX1以參數(shù)a1a2定義了一個(gè)PDF417符號(hào)的寬度上列的數(shù)目。一個(gè)PDF417符號(hào)最多可以有30個(gè)數(shù)據(jù)列。在一個(gè)PDF417符號(hào)中的數(shù)據(jù)區(qū)域73的水平長(zhǎng)度是列數(shù)乘以一個(gè)碼字的寬度。碼字寬度可以從當(dāng)前的模塊寬度計(jì)算出來(lái)。
(b)命令XXX2中以參數(shù)b1b2定義了符號(hào)中行的數(shù)目。一個(gè)PDF417符號(hào)至少有3行,最多有90行。數(shù)據(jù)區(qū)域73的垂直高度是一行高度乘以行數(shù)。
數(shù)據(jù)區(qū)域73中碼字的總數(shù)等于數(shù)據(jù)的列數(shù)乘以行數(shù)。
(c)命令XXX3以參數(shù)c1c2定義了模塊寬度。用來(lái)規(guī)定模塊寬度的單位通常是打印機(jī)的分辨率(點(diǎn))。
(d)命令XXX4以參數(shù)d1d2定義了每個(gè)碼字的高度。碼字高度通常是基于模塊高度,規(guī)定為參數(shù)d1d2乘以模塊寬度。
(e)命令XXX5以參數(shù)e規(guī)定了誤差校正級(jí)0-8。有9個(gè)誤差校正碼字?jǐn)?shù)目(等于2^(e+1))不同的誤差校正級(jí)別。例如,在0級(jí)誤差校正級(jí)別,有2個(gè)(2^1=2)誤差校正碼字。在8級(jí)誤差校正級(jí)別,有512個(gè)(2^9=512)誤差校正碼字。
(f)命令XXX6以參數(shù)f設(shè)置了PDF417符號(hào)體系的選項(xiàng)。選項(xiàng)例如包括規(guī)定一個(gè)簡(jiǎn)化DF417符號(hào)。簡(jiǎn)化PDF417符號(hào)和圖11(a)中的PDF417符號(hào)不同,它省略了右邊指示器74和停止模式75,這使得碼字的數(shù)目減少了。簡(jiǎn)化PDF417符號(hào)的缺點(diǎn)在于它只能在一個(gè)方向讀取數(shù)據(jù),因此犧牲了在讀取方向上的自由度。
(g)命令XXX7將參數(shù)g1到gn中指定的顯示數(shù)據(jù)存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6中。
(h)命令XXX8將顯示數(shù)據(jù)存儲(chǔ)器6中存儲(chǔ)的顯示數(shù)據(jù)以符號(hào)數(shù)據(jù)打印(即打印經(jīng)過(guò)編碼的存儲(chǔ)顯示數(shù)據(jù))。應(yīng)注意的是,當(dāng)字符的尺寸大于打印框架的尺寸時(shí)不執(zhí)行打印操作。
(i)命令XXX9將與存儲(chǔ)在顯示存儲(chǔ)器6中的顯示數(shù)據(jù)對(duì)應(yīng)的符號(hào)的尺寸傳送給主機(jī)90,即發(fā)送對(duì)存儲(chǔ)的顯示數(shù)據(jù)編碼而生成的符號(hào)的尺寸。尺寸信息包括符號(hào)的水平尺寸和垂直尺寸(稱(chēng)為在PDF417中的X維和Y維),和/或符號(hào)能否在打印框架中打印。水平尺寸和垂直尺寸用點(diǎn)單位(打印機(jī)裝置11的最小間距)、公制單位或其它測(cè)量單位表示。應(yīng)該理解,文中的“水平”和“垂直”僅是描述性的,并不對(duì)實(shí)際的方向強(qiáng)加任何限制,只是表示二維方向是相互垂直的。
打印機(jī)1也可以設(shè)置為自動(dòng)處理符號(hào)的行計(jì)數(shù)和列計(jì)數(shù),以使符號(hào)可以適應(yīng)打印框架。例如,通過(guò)將上面的命令XXX1和XXX2的參數(shù)a1a2和b1b2設(shè)定為0,可以將打印機(jī)命令為自動(dòng)處理符號(hào)。
圖11中顯示了打印一個(gè)PDF417符號(hào)70的過(guò)程,以下將參考圖4、圖5進(jìn)行描述。圖4顯示了為了打印符號(hào)而將顯示數(shù)據(jù)轉(zhuǎn)換為符號(hào)圖像,圖5顯示了打印過(guò)程的流程圖。
打印過(guò)程開(kāi)始于,打印機(jī)的數(shù)據(jù)解釋器5按照FIFO(先進(jìn)先出)的順序讀取并解釋存儲(chǔ)在接收緩沖器4中的數(shù)據(jù)(步驟S501)。
如果接收到的數(shù)據(jù)是一個(gè)結(jié)構(gòu)定義命令(上面的命令XXX1到XXX6),定義了符號(hào)70的基本結(jié)構(gòu)(即數(shù)據(jù)列的數(shù)目,行數(shù),模塊寬度、行高、誤差校正級(jí)別和選項(xiàng))(步驟S502檢測(cè)結(jié)構(gòu)定義命令),將根據(jù)接收到的指令的參數(shù)設(shè)置符號(hào)的結(jié)構(gòu)(步驟S503)。結(jié)構(gòu)定義指令的設(shè)置被保存在打印機(jī)1的特定存儲(chǔ)區(qū)域,未在圖中顯示,例如,控制器14或碼轉(zhuǎn)換處理器7。除非發(fā)生了改變,打印機(jī)可以保證一旦保存了這些設(shè)置,將會(huì)保留并供后續(xù)符號(hào)打印操作使用。另外,如果主機(jī)90沒(méi)有規(guī)定符號(hào)的結(jié)構(gòu)設(shè)置,可以用規(guī)定的預(yù)設(shè)缺省值定義符號(hào)結(jié)構(gòu)。在這個(gè)示范實(shí)施例中假設(shè)要被打印的符號(hào)的數(shù)據(jù)列數(shù)是3,行數(shù)為3,模塊寬度被設(shè)置為規(guī)定值。
一旦設(shè)置了基本的符號(hào)結(jié)構(gòu),主機(jī)90發(fā)送出符號(hào)70的顯示數(shù)據(jù)。進(jìn)一步在實(shí)施例中假設(shè),主機(jī)90將顯示數(shù)據(jù)ABCDEF(ASCII碼)隨指令XXX7發(fā)送給打印機(jī)1。當(dāng)打印機(jī)1接收到顯示數(shù)據(jù)并且數(shù)據(jù)解釋器5判決接收到了命令XXX7(步驟S502,發(fā)送顯示數(shù)據(jù)命令),在命令之后的數(shù)據(jù)將作為顯示數(shù)據(jù)存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6中(步驟S504)。顯示數(shù)據(jù)可以由主機(jī)以ASCII碼的形式發(fā)送或者由打印機(jī)轉(zhuǎn)換為ASCII碼。
圖4顯示了將顯示數(shù)據(jù)存儲(chǔ)器6中的ASCII碼顯示數(shù)據(jù)轉(zhuǎn)換為碼字80,以及將得到的碼字轉(zhuǎn)換為一個(gè)代表要打印的符號(hào)70的位像(符號(hào)數(shù)據(jù))的位模式的過(guò)程。
當(dāng)主機(jī)90發(fā)送指令XXX9讓打印機(jī)報(bào)告符號(hào)尺寸信息時(shí)(步驟S502檢測(cè)到一個(gè)報(bào)告尺寸信息指令),打印機(jī)1將檢測(cè)是否有打印數(shù)據(jù)存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6中。如果是(步驟S505返回Yes),碼轉(zhuǎn)換處理器7通過(guò)壓縮顯示數(shù)據(jù)和生成誤差校正碼,將顯示數(shù)據(jù)轉(zhuǎn)換為碼字,然后加上起始和停止模式和左右邊界指示字符,就產(chǎn)生了一個(gè)完整的碼字塊80。然后模式生成器8將這個(gè)碼字塊80轉(zhuǎn)換為PDF417符號(hào)70的符號(hào)數(shù)據(jù)去打印(步驟S506)。
注意,在圖4中僅僅顯示了在文字壓縮模式中通過(guò)將ABCDEF的ASCII碼轉(zhuǎn)換得到的碼字塊80的碼字值001、063、125,沒(méi)有顯示起始模式、停止模式和邊界指示字符。在本例中,遵循PDF417協(xié)議來(lái)將ASCII碼轉(zhuǎn)換成PDF417碼的碼字。然而,在這里轉(zhuǎn)換協(xié)議并不重要,因此僅僅顯示了轉(zhuǎn)換的碼字值。
在本例中盡管只有三個(gè)碼字001、063和125,要注意最終的符號(hào)有三個(gè)數(shù)據(jù)列,并且有三行高。這是因?yàn)樵赑DF417碼字中必須至少有三行高,同時(shí)在本例中的符號(hào)結(jié)構(gòu)設(shè)置成三個(gè)數(shù)據(jù)列。因此除了顯示數(shù)據(jù)碼字之外還插入了垂直和水平誤差校正碼字和填充碼字。
然后尺寸信息發(fā)射器12將符號(hào)70的水平尺寸X和垂直尺寸Y與保存在窗尺寸存儲(chǔ)器15的特定打印框架尺寸比較。然后將比較的結(jié)果、水平尺寸X和垂直尺寸Y發(fā)送給主機(jī)90(步驟S507)。
如果主機(jī)90發(fā)送了命令XXX8要求符號(hào)打印(步驟S502檢測(cè)到了打印符號(hào)指令),打印機(jī)1將檢查是否有顯示數(shù)據(jù)存儲(chǔ)在顯示數(shù)據(jù)存儲(chǔ)器6。如果是(步驟S508返回Yes),則顯示數(shù)據(jù)被轉(zhuǎn)換為符號(hào)數(shù)據(jù)(步驟S509)。然后將符號(hào)70的尺寸和規(guī)定的打印框架相比校。如果符號(hào)70可以在打印框架內(nèi)打印(步驟S510返回Yes),將會(huì)打印符號(hào)(步驟S511)。
如果接收的命令是一些其它命令(步驟S502檢測(cè)到不是上面所述命令的命令),將根據(jù)命令執(zhí)行相應(yīng)步驟(步驟S512)。
如果在步驟S505或步驟S508中沒(méi)有顯示數(shù)據(jù)保存在顯示數(shù)據(jù)存儲(chǔ)器6中,并且如果在步驟S510中符號(hào)的尺寸超出了打印框架,將會(huì)給主機(jī)90發(fā)送相應(yīng)的錯(cuò)誤消息。
圖6、圖7顯示了打印框架和符號(hào)尺寸之間的關(guān)系。圖6顯示了在第20頁(yè)的左上部設(shè)置一個(gè)打印框架21的情況。如果要打印的符號(hào)在水平方向上太長(zhǎng),如打印圖像輪廓22所示,則打印圖像22的右邊結(jié)束處將會(huì)和打印框架21的右邊的文本重疊。這使得閱讀打印框架21右邊的符號(hào)和文字變得很困難。如打印圖像輪廓23所示,符號(hào)相對(duì)于打印框架21太高。在這種情況下,符號(hào)23的底部將會(huì)和在打印框架21下面打印的文字重疊,也會(huì)發(fā)生同樣問(wèn)題,即難以閱讀符號(hào)和符號(hào)打印框架下面的文字。
如果符號(hào)的高度或?qū)挾瘸^(guò)了打印框架21,并且另一邊留有空間(例如,如果符號(hào)太高但比打印框架窄),那么可改變符號(hào)的寬高比,使符號(hào)適應(yīng)打印框架。例如,在一個(gè)太寬的符號(hào)22的情況下,可以減少水平列的數(shù)目,增加行數(shù),使符號(hào)更窄更長(zhǎng)。同樣,為了打印太高的符號(hào)23,可以減少行數(shù),增加列數(shù),使符號(hào)適應(yīng)打印框架。
也有一些情況,即使通過(guò)調(diào)整行列數(shù)目改變了符號(hào)的形狀,也不能在打印框架內(nèi)打印符號(hào)。在這樣的情況下,可以選擇減少模塊即符號(hào)字符的最小單位以減少符號(hào)的整個(gè)尺寸。
因此通過(guò)在符號(hào)打印前決定符號(hào)是否可以在打印框架內(nèi)打印,可以改變符號(hào)形狀使符號(hào)適應(yīng)打印框架。然而,為了實(shí)現(xiàn)這一點(diǎn),必須要在開(kāi)始打印前知道打印符號(hào)的尺寸。如前所述,在此實(shí)例中,通過(guò)命令XXX9,可以從打印機(jī)1獲得這個(gè)尺寸信息。運(yùn)行在主機(jī)上的軟件應(yīng)用程序(未在圖中顯示)使用從打印機(jī)1獲得的尺寸信息,來(lái)檢查符號(hào)尺寸,并通過(guò)必要的手段,例如改變符號(hào)比例或修改顯示數(shù)據(jù)等,來(lái)修改符號(hào)使符號(hào)適應(yīng)打印框架。
用上面的指令XXX1至XXX6去改變打印機(jī)1的符號(hào)結(jié)構(gòu)設(shè)置,來(lái)實(shí)現(xiàn)改變符號(hào)尺寸。或者,應(yīng)用程序可以改變打印框架的定義而不是改變符號(hào)的尺寸。
圖7顯示了一個(gè)在標(biāo)簽26上打印符號(hào)、例如條形碼。標(biāo)簽紙25通常包含多個(gè)標(biāo)簽26。標(biāo)簽26的背面有粘膠,當(dāng)符號(hào)打印以后,可以從標(biāo)簽紙25撕下標(biāo)簽26,用到商品或其它物品上。因此,在每一個(gè)標(biāo)簽26上準(zhǔn)確地打印符號(hào)十分重要。
圖8是用一個(gè)程序控制中央處理單元(CPU)60和存儲(chǔ)器、例如RAM61和ROM62來(lái)實(shí)現(xiàn)圖1或圖2所示的各種控制部分和存儲(chǔ)設(shè)備的一個(gè)典型組成的功能框圖。
打印頭31、馬達(dá)32、鐵心33以及驅(qū)動(dòng)這些部件的打印裝置驅(qū)動(dòng)電路34構(gòu)成了打印裝置11,它執(zhí)行與符號(hào)打印相關(guān)的各種物理操作,包括傳送打印紙,打印,切紙。各種檢測(cè)器35也連接到CPU30上,包括切紙錯(cuò)誤傳感器,夾紙傳感器和其它的錯(cuò)誤狀態(tài)傳感器,開(kāi)蓋傳感器,紙張位置傳感器,如果打印機(jī)是噴墨打印機(jī),還有一個(gè)剩余墨水傳感器。來(lái)自這些傳感器的檢測(cè)結(jié)果輸入給CPU。
數(shù)據(jù)和一個(gè)能夠存儲(chǔ)上述顯示數(shù)據(jù)、將數(shù)據(jù)轉(zhuǎn)換成符號(hào)數(shù)據(jù)、發(fā)送符號(hào)尺寸信息并完成其他功能和過(guò)程的軟件(包括固件)存儲(chǔ)在ROM36和/或RAM37中,并由CPU30讀出,去完成這些不同的功能。完成這些過(guò)程的軟件可以存儲(chǔ)在計(jì)算機(jī)的可讀數(shù)據(jù)存儲(chǔ)介質(zhì)上。因此,計(jì)算機(jī)從數(shù)據(jù)存儲(chǔ)介質(zhì)中讀出軟件去控制打印機(jī),并由此實(shí)現(xiàn)了依據(jù)本發(fā)明的打印機(jī)和打印方法。
如上所述,通過(guò)使用CPU、內(nèi)存和打印裝置來(lái)實(shí)現(xiàn)本發(fā)明,可以很容易地實(shí)現(xiàn)符號(hào)轉(zhuǎn)換過(guò)程,并且從多個(gè)打印符號(hào)中選擇出需要的符號(hào)。
本發(fā)明也可以應(yīng)用到控制打印機(jī)的打印驅(qū)動(dòng)程序。下面以O(shè)POS(零售POS的OLE)為例描述打印機(jī)驅(qū)動(dòng)程序。
OPOS是一個(gè)定義了POS系統(tǒng)設(shè)備(例如打印機(jī)和顯示器)的標(biāo)準(zhǔn)接口的國(guó)際標(biāo)準(zhǔn)。OPOS標(biāo)準(zhǔn)對(duì)象(驅(qū)動(dòng)器)給應(yīng)用程序開(kāi)發(fā)者提供了API(應(yīng)用程序設(shè)計(jì)接口)函數(shù),這些API函數(shù)使用了由POS系統(tǒng)主機(jī)設(shè)備上的Windows(R)操作系統(tǒng)支持的OLE(對(duì)象鏈接和嵌入)控制,簡(jiǎn)化了應(yīng)用程序開(kāi)發(fā)過(guò)程。一個(gè)OPOS標(biāo)準(zhǔn)對(duì)象在下面簡(jiǎn)稱(chēng)為一個(gè)OPOS對(duì)象。
圖9說(shuō)明了在一個(gè)POS系統(tǒng)中OPOS對(duì)象的角色(定位)。如圖9所示,OPOS對(duì)象是位于操作系統(tǒng)和控制POS系統(tǒng)設(shè)備的應(yīng)用程序之間的軟件結(jié)構(gòu)。OPOS對(duì)象根據(jù)定義的規(guī)則標(biāo)準(zhǔn)化了主設(shè)備(PC)和POS系統(tǒng)設(shè)備之間的接口。
OPOS對(duì)象有二層控制對(duì)象(CO)層和服務(wù)對(duì)象(SO)層??刂茖?duì)象是為每一個(gè)設(shè)備類(lèi)提供的對(duì)象,比如顯示和與應(yīng)用程序的控制接口。服務(wù)對(duì)象是在設(shè)備級(jí)上提供的對(duì)象,例如,對(duì)于特定的打印模式,并允許通過(guò)操作系統(tǒng)去控制特定設(shè)備。因此服務(wù)對(duì)象包含設(shè)備的特有信息。例如對(duì)于打印機(jī),服務(wù)對(duì)象包括諸如打印機(jī)分辨率、加載的字體、打印列數(shù)等信息。如果需要,服務(wù)對(duì)象也可以從設(shè)備讀取這些特定的信息。
通過(guò)服務(wù)對(duì)象的方法和屬性,應(yīng)用程序可以按需控制特定設(shè)備。通過(guò)事件和屬性可得到設(shè)備控制的結(jié)果。
一個(gè)OPOS對(duì)象將從應(yīng)用程序到設(shè)備的過(guò)程請(qǐng)求轉(zhuǎn)換為由設(shè)備支持的命令,并且以狀態(tài)報(bào)告的方式,接收來(lái)自設(shè)備的處理結(jié)果。
下面參考圖10描述打印一個(gè)PDF417符號(hào)的過(guò)程。以下假設(shè)應(yīng)用程序向打印機(jī)發(fā)送了一個(gè)打印符號(hào)命令和顯示數(shù)據(jù)。已經(jīng)設(shè)置了結(jié)構(gòu)定義信息。
在接收到了來(lái)自應(yīng)用程序的打印符號(hào)命令和顯示數(shù)據(jù)后(步驟S1001),OPOS對(duì)象按上文解釋將顯示數(shù)據(jù)轉(zhuǎn)換為位像數(shù)據(jù)(步驟S1002)。OPOS對(duì)象可以寫(xiě)入以便轉(zhuǎn)換過(guò)程所需的結(jié)構(gòu)定義信息可以存儲(chǔ)在服務(wù)對(duì)象或者存儲(chǔ)在打印機(jī)中,并在需要時(shí)由此讀出。
然后,將由位像表示的符號(hào)的尺寸與定義的打印框架比較以確定符號(hào)是否可以在打印框架內(nèi)打印(步驟S1003)。對(duì)于基本結(jié)構(gòu)定義信息,打印框架信息可以保存在服務(wù)對(duì)象或打印機(jī)中,并在需要時(shí)由此讀出。
如果可以在打印框架內(nèi)打印(步驟S1004返回Yes),符號(hào)的位象數(shù)據(jù)將被送入打印機(jī)打印(步驟S1005)。如果符號(hào)大于定義的打印框架(步驟S1004返回No),就通知應(yīng)用程序(步驟S1006),該過(guò)程結(jié)束。
當(dāng)顯示數(shù)據(jù)同報(bào)告尺寸信息命令一同從應(yīng)用程序發(fā)送時(shí),也可使用相同的過(guò)程。
通過(guò)在主機(jī)安裝設(shè)備驅(qū)動(dòng)器來(lái)處理將要顯示的信息轉(zhuǎn)換為要打印的符號(hào)的位像的過(guò)程,應(yīng)用程序的開(kāi)發(fā)就更加簡(jiǎn)單。
也可以有效地利用主設(shè)備強(qiáng)大的處理能力以縮短處理時(shí)間。還可以在打印機(jī)上縮短打印命令的處理。
如上所述,因?yàn)榇蛴C(jī)或打印機(jī)驅(qū)動(dòng)程序可以響應(yīng)運(yùn)行在主設(shè)備上的應(yīng)用程序的請(qǐng)求,返回符號(hào)尺寸信息,所以本發(fā)明可以使應(yīng)用程序不執(zhí)行符號(hào)轉(zhuǎn)換過(guò)程就確認(rèn)符號(hào)的尺寸。
權(quán)利要求
1.一種能夠和主機(jī)設(shè)備(90)交換數(shù)據(jù)并且能夠打印二維碼符號(hào)(70)的打印機(jī),所述二維碼符號(hào)用編碼方式表示顯示數(shù)據(jù),所述打印機(jī)包括接收裝置(2,3),用于接收來(lái)自主機(jī)設(shè)備(90)的顯示數(shù)據(jù),以作為碼符號(hào)(70)打??;圖像生成裝置(9),依據(jù)預(yù)先設(shè)定的碼協(xié)議對(duì)顯示數(shù)據(jù)進(jìn)行編碼,并且將編碼后的顯示數(shù)據(jù)格式化,由格式化后的數(shù)據(jù)生成表示符號(hào)的位像數(shù)據(jù);計(jì)算裝置(8),由位圖像數(shù)據(jù)計(jì)算出碼符號(hào)(70)在每一個(gè)二維方向上的尺寸;發(fā)送裝置(2,12,13),向主機(jī)設(shè)備(90)發(fā)送對(duì)應(yīng)于計(jì)算出的符號(hào)尺寸的符號(hào)尺寸報(bào)告響應(yīng)信息;以及打印裝置,依照所述位像數(shù)據(jù)打印碼符號(hào)(70)。
2.如權(quán)利要求1所述的打印機(jī),其特征在于,所述圖像生成裝置(9)包括用于數(shù)據(jù)壓縮以及產(chǎn)生誤差校正碼的裝置。
3.如權(quán)利要求1所述的打印機(jī),其特征在于,所述圖像生成裝置(9)適于產(chǎn)生所述位像數(shù)據(jù)以響應(yīng)來(lái)自主機(jī)設(shè)備(90)的請(qǐng)求。
4.如權(quán)利要求1所述的打印機(jī),其特征在于,所述發(fā)送裝置(2,12,13)包括比較符號(hào)尺寸和規(guī)定的打印區(qū)域的比較裝置,并且,其中,所述符號(hào)尺寸報(bào)告響應(yīng)信息是指示符號(hào)(70)是否能夠適合上述打印區(qū)域的信息。
5.如權(quán)利要求1所述的打印機(jī),其特征在于,所述發(fā)送裝置(2,12,13)適于發(fā)送所述符號(hào)尺寸報(bào)告響應(yīng)信息以響應(yīng)來(lái)自主機(jī)設(shè)備(90)的請(qǐng)求。
6.如權(quán)利要求4所述的打印機(jī),其特征在于,當(dāng)所述符號(hào)尺寸報(bào)告響應(yīng)信息表明碼符號(hào)(70)可以在所述打印區(qū)域打印時(shí),打印裝置適于打印碼符號(hào)(70)以響應(yīng)來(lái)自主機(jī)設(shè)備(90)的打印請(qǐng)求。
7.如權(quán)利要求1所述的打印機(jī),其特征在于,所述碼符號(hào)(70)是一個(gè)包含多行條形碼和矩陣條形碼的二維碼條形碼符號(hào)。
8.一種控制能夠和主機(jī)設(shè)備(90)交換數(shù)據(jù)并且能夠打印二維碼符號(hào)(70)的打印機(jī)的方法,所述二維碼符號(hào)用編碼的方式表示顯示數(shù)據(jù),包括以下步驟(a)接收來(lái)自主機(jī)設(shè)備(90)的作為碼符號(hào)(70)的要打印的顯示數(shù)據(jù)并且存儲(chǔ)所接收的顯示數(shù)據(jù);(b)根據(jù)預(yù)定的碼協(xié)議,對(duì)存儲(chǔ)的顯示數(shù)據(jù)進(jìn)行編碼,并將編碼后的數(shù)據(jù)格式化;(c)由格式化后的數(shù)據(jù)生成代表碼符號(hào)(70)的位像數(shù)據(jù);(d)根據(jù)步驟(c)生成的位像數(shù)據(jù)計(jì)算出碼符號(hào)(70)在每一個(gè)二維方向上的尺寸;(e)作為符號(hào)尺寸報(bào)告響應(yīng)信息,向主機(jī)設(shè)備(90)發(fā)送對(duì)應(yīng)于符號(hào)尺寸的信息;以及(f)依照所述位像數(shù)據(jù)打印碼符號(hào)(70)。
9.如權(quán)利要求8所述的方法,其特征在于,所述步驟(b)包括數(shù)據(jù)壓縮和產(chǎn)生一個(gè)誤差校正碼的過(guò)程。
10.如權(quán)利要求8所述的方法,其特征在于,所述步驟(e)包括比較符號(hào)尺寸和規(guī)定的打印區(qū)域,并且發(fā)送指示碼符號(hào)(70)是否適合所述打印區(qū)域的信息。
11.如權(quán)利要求10所述的方法,其特征在于,步驟(f)包括,當(dāng)碼符號(hào)尺寸沒(méi)有超過(guò)所述打印區(qū)域時(shí),打印位模式圖像以響應(yīng)來(lái)自主機(jī)設(shè)備(90)的一個(gè)打印請(qǐng)求。
12.如權(quán)利要求8所述的方法,其特征在于,執(zhí)行步驟(b)、(c)、(d)、和(e),以響應(yīng)來(lái)自主機(jī)設(shè)備(90)的一個(gè)尺寸報(bào)告請(qǐng)求。
13.如權(quán)利要求8所述的方法,其特征在于,所述碼符號(hào)(70)是一個(gè)包括多行條形碼和矩陣條形碼的二維碼條形碼符號(hào)。
14.一種打印二維碼符號(hào)的方法,所述二維碼符號(hào)用編碼的方式表示顯示數(shù)據(jù),所述方法由能夠互相通信的一臺(tái)主機(jī)設(shè)備(90)和一臺(tái)打印機(jī)(1)來(lái)實(shí)現(xiàn),包括如下步驟在主機(jī)設(shè)備(90)方面(a)向打印機(jī)(1)發(fā)送要作為碼符號(hào)(70)來(lái)打印的顯示數(shù)據(jù);在打印機(jī)(1)方面(b)接收來(lái)自主機(jī)設(shè)備(90)的顯示數(shù)據(jù)并且存儲(chǔ)所接收的顯示數(shù)據(jù);(c)根據(jù)預(yù)定的碼協(xié)議,對(duì)存儲(chǔ)的顯示數(shù)據(jù)進(jìn)行編碼,并將編碼后的數(shù)據(jù)格式化;(d)由格式化后的數(shù)據(jù)生成代表碼符號(hào)(70)的位像數(shù)據(jù);在主機(jī)設(shè)備(90)方面(e)向打印機(jī)(1)發(fā)送一條符號(hào)尺寸報(bào)告請(qǐng)求,命令打印機(jī)(1)向主機(jī)設(shè)備(90)發(fā)送符號(hào)尺寸;在打印機(jī)(1)方面(f)響應(yīng)來(lái)自主機(jī)設(shè)備(90)的符號(hào)尺寸報(bào)告請(qǐng)求,根據(jù)步驟(d)生成的位像數(shù)據(jù)計(jì)算出碼符號(hào)(70)在每一個(gè)二維方向上的尺寸;(g)作為符號(hào)尺寸報(bào)告響應(yīng)信息,向主機(jī)設(shè)備(90)發(fā)送對(duì)應(yīng)于符號(hào)尺寸的信息;以及(h)依照所述位像數(shù)據(jù)打印碼符號(hào)(70)。
15.如權(quán)利要求14所述的方法,其特征在于,所述步驟(c)包括數(shù)據(jù)壓縮和產(chǎn)生一個(gè)誤差校正碼的過(guò)程。
16.如權(quán)利要求14所述的方法,其特征在于,所述步驟(g)包括比較符號(hào)尺寸和規(guī)定的打印區(qū)域,并且發(fā)送指示碼符號(hào)(70)是否適合所述打印區(qū)域的信息。
17.如權(quán)利要求16所述的方法,其特征在于,進(jìn)一步包括在主機(jī)設(shè)備(90)方面(i)向打印機(jī)(1)發(fā)送一條打印請(qǐng)求,命令打印機(jī)(1)打印碼符號(hào)(70);其中,步驟(h)包括,當(dāng)碼符號(hào)尺寸沒(méi)有超過(guò)所述打印區(qū)域時(shí),打印位模式圖像以響應(yīng)所述打印請(qǐng)求。
18.如權(quán)利要求14所述的方法,其特征在于,執(zhí)行步驟(c)、(d)、(f)和(g),以響應(yīng)來(lái)自主機(jī)設(shè)備(90)的一條尺寸報(bào)告請(qǐng)求。
19.如權(quán)利要求14所述的方法,其特征在于,所述步驟(e)包括向打印機(jī)(1)發(fā)送一條打印請(qǐng)求,命令打印機(jī)(1)打印碼符號(hào)(70),并且符號(hào)尺寸報(bào)告請(qǐng)求和打印請(qǐng)求是同一個(gè)請(qǐng)求,以及,執(zhí)行步驟(c)、(d)、(f)到(g)以響應(yīng)這個(gè)請(qǐng)求。
20.如權(quán)利要求14所述的方法,其特征在于,所述碼符號(hào)(70)是一個(gè)包括多行條形碼和矩陣條形碼的二維碼條形碼符號(hào)。
全文摘要
一個(gè)條形碼或類(lèi)似的碼符號(hào)可以由打印這些符號(hào)的打印機(jī)(1)在一個(gè)規(guī)定的打印區(qū)域內(nèi)精確地打印。打印機(jī)(1)有一個(gè)將顯示信息轉(zhuǎn)換為符號(hào)的轉(zhuǎn)換器和一個(gè)向主機(jī)設(shè)備(90)報(bào)告轉(zhuǎn)換后的符號(hào)尺寸的裝置。為了打印,主機(jī)設(shè)備僅僅向打印機(jī)(1)發(fā)送特定的指令和表示要被打印的符號(hào)的文本數(shù)據(jù)。于是,主機(jī)就能夠確認(rèn)是否可以在特定區(qū)域內(nèi)進(jìn)行打印。
文檔編號(hào)G06F3/12GK1560824SQ20041005569
公開(kāi)日2005年1月5日 申請(qǐng)日期2001年3月31日 優(yōu)先權(quán)日2000年4月14日
發(fā)明者小圷直彥, 武井貞介, 介, 小 直彥 申請(qǐng)人:精工愛(ài)普生株式會(huì)社