專利名稱:用于數(shù)據(jù)傳輸和檢索的條形碼的自動產生的制作方法
技術領域:
本發(fā)明的領域和背景本發(fā)明涉及把條形碼自動打印在紙上或其它打印基材上的一種系統(tǒng)和方法,更具體地說,是涉及用于數(shù)據(jù)傳輸和/或捕獲的這樣一種打印的條形碼。
盡管大量的數(shù)據(jù)是通過電子方式傳輸?shù)模珜埖男枨笕匀淮嬖?。當今商業(yè)界在紙上接收和傳送多種不同類型的數(shù)據(jù),其中包括發(fā)票、收據(jù)、訂貨單、各種表格、報告等等。紙本身可通過例如郵件或傳真來傳輸。當通過傳真來傳輸時,生成的文本和/或圖形的質量可能被降低。此外,傳真機和/或打印機不可能每一次都把文本或圖形準確地放在紙上的同一位置。所有這些綜合因素使對打印出的紙進行自動讀取和數(shù)據(jù)分析非常困難和經常不準確。例如為了獲得對打印文本的準確分析,一張被掃描的紙進行的OCR(光學字符識別)要求文本數(shù)據(jù)的高質量再現(xiàn)。這種高質量從例如傳真上很難獲得。因此,一名工作人員經常必須對每張打印出的紙進行閱讀并且人工地把數(shù)據(jù)傳輸?shù)接嬎銠C上,這樣效率非常低。
然而,對于完全電子形式的數(shù)據(jù)傳輸方式紙的確具有一定的優(yōu)點。即使人們已經嘗試對電子存儲和傳輸?shù)臄?shù)據(jù)提供電子“簽字”或“水印”或其它形式的的驗證,但沒有一種嘗試能夠產生象人們在紙上手寫簽字這樣準確和可靠的驗證。因此電子傳輸?shù)臄?shù)據(jù)可能容易自動讀取和分析而不需要工作人員的干預,但不能保證數(shù)據(jù)的真實性。
一種更有效的解決方法是,既能在沒有工作人員干預的情況下準確自動地讀出并分析打印出的紙上的數(shù)據(jù),又能在不打印到紙上或其它可打印基材上的情況下提供一種保證被存儲和電子傳輸?shù)臄?shù)據(jù)的真實性的機制。目前,背景技術尚未完全解決上述任何一個問題,當然單一背景技術解決方案未能解決上述兩個問題的組合。
這樣,一種能自動讀取、分析打印出的紙或其它可打印基材上的數(shù)據(jù)的系統(tǒng)和方法將是有必要并且有用的,即使例如由通過諸如傳真機的不清晰再現(xiàn)降低了數(shù)據(jù)的質量,它也適合保證電子存儲和傳輸?shù)臄?shù)據(jù)的真實性。
本發(fā)明對電子存儲和傳輸數(shù)據(jù)的鑒別、驗證的綜合問題以及自動讀取和分析打印在可打印基材上的數(shù)據(jù),提供了一種解決方案,盡管本發(fā)明優(yōu)選是在紙上或其它物理打印基材上打印數(shù)據(jù)的這種應用,但本發(fā)明的整體靈活性使它能夠被用在各種實施例上。
根據(jù)本發(fā)明,提供了一種在可打印的基材上打印條形碼的系統(tǒng),該條形碼特點是具有多個標記圖形(pattern of a plurality of marks),該系統(tǒng)包括(a)接收多個打印命令并且根據(jù)該多個打印命令在可打印基材上打印的輸出裝置;(b)一個接收要打印的數(shù)據(jù)的計算裝置;(c)一個打印機驅動模塊,該模塊由計算裝置操縱,把至少一部分要打印的數(shù)據(jù)轉換(translate)成條形碼,并且確定至少一個命令以在可打印基材(substrate)上打印條形碼以形成打印的條形碼,該打印機驅動模塊傳遞至少一個命令到輸出裝置。
根據(jù)本發(fā)明的另一實施例,提供了一種在可打印基材上打印條形碼的方法,該方法包括以下步驟(a)接收數(shù)據(jù);(b)把至少一部分數(shù)據(jù)轉換成多個標記圖形;(c)確定至少一個用于打印多個標記圖形的打印命令;(d)在可打印基材上打印多個標記圖形形成條形碼。
在下文中,術語“可打印基材”指任何可通過例如激光打印機或噴墨打印機將文本和/或圖形打印到其上的材料。這種基材包括例如紙、厚紙板或其它以木質紙漿產品、塑料和金屬,但不限于此。
在下文中,術語“網絡”指任意兩臺允許數(shù)據(jù)傳輸?shù)挠嬎銠C之間的連接,它包括因特網、WAN(廣域網)、LAN(局域網),但不限于此。
在下文中,術語“計算機”包括具有諸如DOS、WindowsTM、OS/2TM或者Linux操作系統(tǒng)的個人計算機(PC);MacintoshTM計算機;具有JAVATM操作系統(tǒng)的計算機;和諸如Sun MicrosystemsTM和SiliconGraphicsTM的圖形工作站,以及其它具有某版本的UNIX操作系統(tǒng)的計算機,諸如Sun MicrosystemsTM的AIXTM或者SOLARISTM;或者任意其它的已知的現(xiàn)有的操作系統(tǒng);以及包含微處理器的任何終端或計算裝置。在下文中,術語“WindowsTM”包括但不限于Windows95TM、Windows3.xTM(其中x是一個如“1”的整數(shù))、WindowsNTTM、Windows98TM、WindowsCETM以及任何美國微軟公司的這些操作系統(tǒng)的升級版本。
本發(fā)明可以被描述為由數(shù)據(jù)處理器執(zhí)行的多個指令,這樣本發(fā)明的發(fā)明方法可以用硬件、軟件、固件或它們的組合來實現(xiàn),對于本發(fā)明來說,基本上可以以任何適合的編程語言編寫軟件應用程序,這對本領域普通技術人員來說很容易選擇。編程語言的選擇應與執(zhí)行軟件應用程序的計算機兼容。適合的編程語言包括C、C++和Java,但不限于此。
圖1是根據(jù)本發(fā)明所說明的條形碼打印系統(tǒng)的示意方框圖;圖2是根據(jù)本發(fā)明所說明的條形碼掃描系統(tǒng)的示意方框圖。
本發(fā)明的詳細說明本發(fā)明是一種自動分析和讀取條形碼的系統(tǒng)和方法,該條形碼存在于以電子形式存儲和傳輸?shù)奈募?,?或被打印在諸如紙之類的可打印基材上。該此條形碼可以被用于在小的區(qū)域存儲大量信息。本發(fā)明的系統(tǒng)和方法可以有各種應用,例如為了鑒別和/或識別一個文檔。除此之外,這樣的條形碼可以被用做傳輸能被自動讀取和分析的信息。
本發(fā)明對電子存儲和傳輸數(shù)據(jù)的鑒別、驗證的綜合問題以及自動讀取和分析打印在可打印基材上的數(shù)據(jù),提供了一種解決方案,盡管本發(fā)明優(yōu)選是在紙上或其它物理打印基材上打印數(shù)據(jù)的這種應用,但本發(fā)明的整體靈活性使它能夠被用在各種實施例上。
參照附圖和
,人們可能能夠更好地理解根據(jù)本發(fā)明的系統(tǒng)和方法的原理和操作,應當理解這些附圖僅僅是為了說明的目的,并不意味著局限于此。
現(xiàn)在參照附圖,圖1是一個根據(jù)本發(fā)明的系統(tǒng)的示意方框圖,系統(tǒng)10特點是具有操作軟件程序的計算裝置12。計算裝置12是一個如上面所定義的典型計算機??蛇x擇地或優(yōu)選是,計算裝置12可以是例如帶有嵌入的操作系統(tǒng)和微處理器的任何種類的電子裝置。僅為了便于描述而非以任何方式限定,可以認為計算裝置12是一臺計算機。
計算裝置12操作打印機驅動軟件模塊14以使被接收的數(shù)據(jù)能被打印到輸出裝置16上。打印機驅動軟件模塊14能夠接收數(shù)據(jù)并把此數(shù)據(jù)轉換成一種可打印到輸出裝置16上的格式。如在背景技術中所公知的,打印機驅動軟件模塊14包括后臺打印程序(spooler)18和驅動程序20。所接收的數(shù)據(jù)包含多個命令,指示打印機驅動軟件模塊14打印此數(shù)據(jù)。驅動程序20把這些命令轉換給后臺打印程序18,后臺打印程序18反過來與輸出裝置16通訊以打印此數(shù)據(jù)。后臺打印程序18和驅動程序20的實現(xiàn)在背景技術中是公知的,并且易于由本領域的普通技術人員執(zhí)行。
打印機驅動軟件模塊14具有另外一個模塊,—即條形碼驅動程序22,它在背景技術中不是公知的。條形碼驅動程序22檢驗要打印的接收數(shù)據(jù)并且增加可由驅動程序20譯出的命令,這樣后臺打印程序18也指示輸出裝置16除接收數(shù)據(jù)之外也打印條形碼,或者最好代替所接收的數(shù)據(jù)。
如這里所使用的術語“條形碼”是指一個2維或3維的打印的條形碼,其中第3維是彩色的,如例如美國專利第5304786號所公開的,如所說明的,該專利以參考的方式被包含在本文中。所顯示的2維條形碼具有多個符號,這些符號根據(jù)代碼被確定,由此可對其進行解碼以獲得包含在條形碼內的信息。這種條形碼在相對小的范圍內有很高容量的信息存儲量。在幾平方英寸的打印基材材料區(qū)域內,美國專利第5304786號的條形碼可以存儲1千字節(jié)的容量。由此,可以存儲大量的信息以代替或加入到最初的接收數(shù)據(jù)。
美國專利第5304786號的條形碼是本發(fā)明使用這樣一個條形碼的示例,盡管也可以使用其它這樣的條形碼。此條形碼具有一種含多組符號或“碼字”的結構。每一個碼字是多個元素或標記的圖形,它可以具有不同的高度或相對一致低的高度。每一個標記圖形必須符合一定的規(guī)則以使此碼字屬于一個特定的類或一組標記圖形。碼字成行排列,以使相鄰行包含來自不同圖形組的碼字。因此,如果一行與另一行交叉,這對此行碼字解碼有害,這種交叉能夠會被立刻檢測出,而且,掃描條形碼更容易被進行,這對本發(fā)明特別有用,考慮到掃描這些條形碼幾乎很少或不需要人工干預。
別的對本發(fā)明有用的條形碼技術的例子包括美國專利第5313564號和5801848號,這兩項專利以參考的方式被包含在本文中,如所說明的。
由于條形碼是一個符號圖形,條形碼驅動程序22必須把所接收的數(shù)據(jù)轉換成符號以確定給到驅動程序22的命令。例如,條形碼驅動程序22通過將涉及字體、文本的位置和文本本身的命令與其它用于圖形本身或圖形位置的命令例如頁打印命令分離,首先把接收的數(shù)據(jù)分離成文本或圖形。從這些其它命令獲得的數(shù)據(jù)(如圖形數(shù)據(jù))有選擇地被包含在條形碼中。
緊接著,文本可以被分成多個字,而圖形(如果包括的話)可以被分成不同的圖形單元(graphical item),例如根據(jù)文本和每一個圖形單元之間的邊界來確定。至少一部分文本文字可以被轉換成一個或多個碼字。例如,如果此接收數(shù)據(jù)與發(fā)票有關,至少把重要信息(例如接受公司的名字)最好轉換成碼字。每一圖形單元的一個可視外形描述也可以選擇被轉換成碼字。
如果接收的數(shù)據(jù)包含一個涉及“注釋”的不被打印的打印機命令,條形碼驅動程序22可以有選擇地并且最好從“注釋”中檢索此字段名,并且使用此信息來識別下面打印的字段??梢酝ㄟ^使用掃描模塊(見下面圖2)而不是僅依賴于紙張位置或其它的字符來識別字段類型??蛇x擇地并且最好是,條形碼驅動程序22在條形碼中包括具體用戶信息,如用戶身份、用戶密碼、打印數(shù)據(jù)或其它用戶信息。
然后條形碼驅動程序22確定必要命令或命令集,指示后臺打印程序18通過輸出裝置16打印這些碼字。例如,條形碼驅動程序22可以確定條形碼被打印在紙的什么地方,不適合放在一頁紙上的條形碼部分將被如何處理。例如,如果必要的話,條形碼驅動程序22可以有選擇地使條形碼被打印在多頁紙上。
輸出裝置16可選擇地并且最好是一臺打印機,如激光打印機、熱敏打印機或噴墨打印機,甚至也可以是一臺傳真機,它把信息打印到可打印基材24上。在這種情況下,為了生成描述接收信息的條形碼,可打印基材24是一種諸如紙、金屬或塑料的材料,打印機能夠將墨、顏料、其它標記物質或別的能在材料上顯示標記的東西應用到這種材料上,輸出裝置16可選擇地且最好是一個電子存儲介質,如磁或光存儲介質。在這種情況下,可打印基材24實際上是一個電子文件,它包含所有命令和指令的描述,用以將條形碼或帶有接收數(shù)據(jù)的條形碼打印到例如紙之類的基材上。然后,后臺打印程序18可以有選擇地直接讀取此文件,用于在與最初使用的打印機命令語言相同類型的打印機上打印,盡管此文件也可以被有選擇地轉換成另一種打印機命令語言,用于在不同型號上的打印機打印。特別地如果此文件是一個EMF文件的話,此文件也可以被轉換成一種可由別的軟件程序讀取的文件類型,如word處理程序。本發(fā)明已考慮到了打印到可打印基材24的兩種類型的“打印”,無論是打印到諸如紙之類的基材還是電子文件。
打印條形碼本身或帶有接收數(shù)據(jù)條形碼的方法的一個示例,是根據(jù)WindowsTM操作系統(tǒng)(微軟有限公司)的一種版本(如Windows95TM、Windows98TM或NT4)的計算機操作系統(tǒng)來引導激光打印機在紙上打印信息的一種方法。在這些操作系統(tǒng)之一的一個打印機驅動軟件模塊通常能夠執(zhí)行純打印(raw printing)或EMF打印。EMF(增強元文件)打印涉及確定用于打印信息的適當?shù)腉DI(圖形裝置接口)命令。接著這些GDI命令被存儲在EMF文件中。然后后臺打印程序讀取該后臺打印文件,并且通過使用打印機驅動程序把GDI命令轉換成純打印命令。由此,如果所有這些命令被復制到一個電子文件中,那么可以使用這個生成的文件打印條形碼或其它信息。
所以,在此示例中,本發(fā)明的打印機驅動軟件模塊,更具體地說是條形碼驅動程序,最好把至少一部分接收數(shù)據(jù)轉換成GDI命令以作為條形碼打印。在此示例中,使用GDI命令來確定碼字的可視外形,以使當打印在例如紙上時得到的條形碼有正確圖形。而且,為了通過例如水印來提供識別和鑒別,此EMF文件可以被插入到另一個電子文件中,例如一個字處理文件。
適合本發(fā)明使用的其它打印命令語言包括但不限于PostScriptTM(Adobe研究有限公司)、PCLTM(惠普有限公司)、CAPSLTM(佳能有限公司)、PPLTM(數(shù)字有限公司)這些語言的所有版本以及其它打印機命令語言。
圖2顯示了當打印到諸如紙張這樣的可打印基材上時,自動讀取和分析條形碼的掃描系統(tǒng)26。掃描系統(tǒng)26包括一個在可打印基材上檢測條形碼的掃描單元28。掃描單元28可選擇地并且最好具有一個用于生成激光光束(此激光光束朝著包含條形碼的可打印基材方向)的激光光源30。然后光檢測器32接收反射回來的光線。從光檢測器32發(fā)出的信號被傳遞給計算裝置34,此裝置類似于圖1中的計算裝置。
用于掃描單元28的其它可能的實施例包括平板掃描儀或其它類型的掃描裝置,以及CCD(電荷耦合器件)照相機或視頻捕獲系統(tǒng),但不限于此。
計算裝置34操作信號分析模塊36,此模塊為了獲得來自條形碼的信息,分析來自反射光的接收信號。如果此條形碼是如美國專利第5304786號所公開的,那么可以有選擇地在信號分析模塊36中使用在此專利中所公開的分析和譯碼的方法。根據(jù)美國專利第5304786號,最好分兩步對此條形碼進行譯碼。在第一步中,根據(jù)鑒別功能確定該組碼字,在第二步中,根據(jù)數(shù)學功能例如從查找表中確定被指定條形碼的符號含義,有選擇地執(zhí)行檢錯或糾錯功能。因此,最好根據(jù)能夠控制降低的或不完善傳輸?shù)臈l形碼數(shù)據(jù)的過程,來確定由條形碼譯出的信息內容。
對本發(fā)明的多個不同優(yōu)選實施例來說,這樣一種能力尤其重要,例如,可以使用本發(fā)明的系統(tǒng)和方法通過傳真機傳輸信息。這種傳輸通常不完善和/或使接收數(shù)據(jù)質量下降。因此,最好使用條形碼實現(xiàn)本發(fā)明的系統(tǒng)和方法,它能在傳輸過程中不使質量降低。
除此之外,本發(fā)明的系統(tǒng)和方法能夠用于識別發(fā)送者或文件作者,并且/或者鑒別文件來源。例如本發(fā)明的系統(tǒng)和方法可以用于在打印的文檔上加上“水印”,它可以表示接收人的身份。這種“水印”也可以包含被存儲和/或被傳輸文件的密碼,例如為了獲得從文件中檢索的信息,此密碼是必需的。
本發(fā)明的系統(tǒng)和方法的其它可能實施例包括用于這樣一種裝置,該裝置以有聲的、電子生成的聲音讀取數(shù)據(jù),它是針對例如那些視力不太好的人。
特別為了前述實施例的安全和鑒別,可以按需要調整條形碼在紙上的位置,例如,可以把條形碼分成多個部分,每一部分出現(xiàn)在多頁紙的其中一頁上,由此鑒別文件的多個頁,如果不對全部文件進行鑒別的話?;蛘?,可以將條形碼打印打印在一頁紙上,并且可以與包含在該頁紙上的文本和其它信息相比較,以便用于鑒別。
根據(jù)本發(fā)明的其它優(yōu)選實施例,除了作為軟件模塊描述的實現(xiàn)方法以外,可以把圖1和圖2中所述功能模塊作為硬件、固件或它們的組合來實現(xiàn)。例如,可以選擇把圖1中的打印機驅動軟件模塊作為一個硬件裝置來實現(xiàn)。該硬件裝置可以被連接到打印機串口或并口,或其它諸如USB口、紅外口、GPAB口或SCSI口之類的其它數(shù)據(jù)端口,或者甚至網卡,使打印機驅動硬件裝置截取從計算機流向打印機的數(shù)據(jù)。然后由該硬件裝置加入條形碼數(shù)據(jù),或有選擇地以條形碼數(shù)據(jù)代替被打印的數(shù)據(jù),使得至少該條形碼數(shù)據(jù)將被打印機打印。或者,打印機驅動硬件裝置可以作為卡、SIMM或DIMM來實現(xiàn),其可以被連接到打印機的總線?;蛘?,該打印機驅動硬件裝置也可以作為芯片來實現(xiàn),該芯片可以加到打印機和/或計算機中。如果作為軟件來實現(xiàn),此軟件可以加到打印機系統(tǒng)上。另外,掃描模塊軟件可以被加到掃描系統(tǒng)用于掃描儀操作。由此,本發(fā)明可以根據(jù)多個不同的實施例來實現(xiàn)。
應當理解上述描述的目的僅僅是作為示例,在本發(fā)明的精神和范圍內,許多其它的實施例也是可行的。
權利要求
1.一種自動將條形碼打印到可打印基材上的系統(tǒng),該條形碼具有多個標記圖形,該系統(tǒng)包括(a)輸出裝置,用于接收多個打印命令并根據(jù)所述多個打印命令在可打印基材上打?。?b)計算裝置,用于接收要打印的數(shù)據(jù);(c)打印機驅動模塊,由所述計算裝置操作,把所述要被打印的數(shù)據(jù)的至少一部分自動轉換成條形碼,自動確定至少一個命令以將該條形碼打印到所述可打印基材上,形成打印的條形碼,所述打印機驅動模塊傳送所述至少一個命令到所述輸出裝置。
2.如權利要求1所述的系統(tǒng),其中所述打印機驅動模塊還包括(i)條形碼驅動程序,用于接收所述要被打印的數(shù)據(jù),分析所述數(shù)據(jù)并把至少所述數(shù)據(jù)的一部分轉換成多個標記圖形以確定該條形碼;(ii)驅動程序,用于接收多個標記圖形并確定打印這多個標記圖形的多個打印命令;(iii)后臺打印程序,用于接收所述多個打印命令并把所述多個打印命令轉換成用于所述打印輸出裝置的命令用以打印。
3.如權利要求2所述的系統(tǒng),其中所述輸出裝置是一種打印到從包含紙、金屬、塑料的一組材料中所選擇的一種材料的打印機。
4.如權利要求3所述的系統(tǒng),其中所述打印機驅動模塊可以作為一個硬件裝置來實現(xiàn),該裝置把所述計算裝置與所述輸出裝置相連接。
5.如權利要求3所述的系統(tǒng),其中所述打印機驅動模塊作為一個硬件裝置來實現(xiàn),該裝置僅與所述計算裝置相連接。
6.如權利要求3所述的系統(tǒng),其中所述打印機驅動模塊作為軟件模塊來實現(xiàn)。
7.如權利要求1所述的系統(tǒng),還包括(d)一個掃描系統(tǒng),用于讀取所述打印的條形碼,并且從所述打印條形碼檢索所述要被打印的數(shù)據(jù)的至少一部分。
8.如權利要求書7所述的系統(tǒng),其中所述掃描系統(tǒng)還包括(i)一個激光光源,用于反射激光光束到所述打印條形碼上;(ii)一個光檢測器,用于檢測從所述打印條形碼反射的光;和(iii)一個信號分析模塊,由所述計算裝置操作,從打印條形碼中確定至少一部分所述要被打印的數(shù)據(jù)。
9.一種將條形碼打印到可打印基材上的方法,該方法包括下列步驟(a)接收數(shù)據(jù);(b)把至少一部分所述數(shù)據(jù)轉換成多個標記圖形;(c)確定至少一個用于打印所述多個標記圖形的打印命令;和(d)將所述多個標記的所述圖形打印到可打印基質上形成條形碼。
10.如權利要求9所述的方法,其中所述數(shù)據(jù)特點為文本,使得步驟(b)包括以下步驟(i)把所述文本分成多個文字;和(ii)把每一個文字轉換成多個標記圖形。
11.如權利要求10所述的方法,其中所述數(shù)據(jù)還具有至少一個圖形圖像,根據(jù)所述多個文字,確定所述至少一個圖形圖像的邊界,并且步驟(b)還包括以下步驟(iii)把所述至少一個圖形圖像轉換成多個標記圖形。
12.如權利要求11所述的方法,其中從包含紙、金屬、塑料的組中選擇所述可打印基材,并且通過將可視顯示物質打印到所述可打印基材來執(zhí)行步驟(d)。
13.如權利要求書12所述的方法,其中所述可打印基材是一個文件并且條形碼包含鑒別所述文件來源的信息。
全文摘要
一種自動分析和讀取條形碼的系統(tǒng)和方法,該條形碼存在于以電子形式存儲和傳輸?shù)奈募?和/或被打印在諸如紙之類的可打印基材上。該此條形碼可以被用于在小的區(qū)域存儲大量信息。本發(fā)明的系統(tǒng)和方法可以有各種應用,例如為了鑒別和/或識別一個文檔。除此之外,這樣的條形碼可以被用做傳輸能被自動讀取和分析的信息。本發(fā)明對電子存儲和傳輸數(shù)據(jù)的鑒別、驗證的綜合問題以及自動讀取和分析打印在可打印基材上的數(shù)據(jù),提供了一種解決方案,盡管本發(fā)明優(yōu)選是在紙上或其它物理打印基材上打印數(shù)據(jù)的這種應用,但本發(fā)明的整體靈活性使它能夠被用在各種實施例上。
文檔編號G06K1/12GK1365482SQ00811014
公開日2002年8月21日 申請日期2000年6月11日 優(yōu)先權日1999年6月18日
發(fā)明者以色列·齊默爾曼, 羅尼·哈森 申請人:I.C.碼有限公司