專利名稱:一種打印控制方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及打印技術(shù)領(lǐng)域,特別是涉及一種打印控制方法和裝置。
背景技術(shù):
近年來(lái),出現(xiàn)了越來(lái)越多的票據(jù)打印應(yīng)用,例如彩票打印等,這些票據(jù) 一般要求具備完全的票據(jù)內(nèi)容,才能符合票據(jù)的使用需要。
現(xiàn)有技術(shù)中,控制打印機(jī)的上位機(jī)控制軟件無(wú)法得知票據(jù)數(shù)據(jù)的打印是 否完全,于是上位機(jī)控制軟件在向打印機(jī)下發(fā)了一張需要打印的票面數(shù)據(jù)后, 就認(rèn)為該票面打印是成功的,于是即使出現(xiàn)票據(jù)打印不全造成票據(jù)無(wú)效的情 況,也認(rèn)為打印出了有效的票據(jù)并把票據(jù)票號(hào)登記在上位機(jī)上的軟件系統(tǒng)中。 例如,在票據(jù)打印過(guò)程中,因?yàn)榇蛴C(jī)抬起上蓋、數(shù)據(jù)通訊受干擾、打印票 據(jù)紙用完需要更換紙巻等原因,造成當(dāng)前票面的數(shù)據(jù)丟失、票據(jù)內(nèi)容打印不 全,上位機(jī)控制軟件也認(rèn)為打印了完全有效的票據(jù)。
但是,目前還沒(méi)有一種打印控制方法可以對(duì)票面打印的完整性(即有效 性)進(jìn)行判斷,因此,如果打印機(jī)發(fā)生錯(cuò)誤,導(dǎo)致需要打印的票據(jù)數(shù)據(jù)沒(méi)有 完全精確地打印在票面上時(shí),用戶購(gòu)買(mǎi)獲得的票據(jù)就可能由于票據(jù)的條形碼、 關(guān)鍵號(hào)碼、金額等內(nèi)容不全,而無(wú)法達(dá)到票據(jù)的使用標(biāo)準(zhǔn),導(dǎo)致票據(jù)無(wú)法使 用,嚴(yán)重?fù)p害了票據(jù)用戶的財(cái)產(chǎn)利益,并造成票據(jù)用戶與票據(jù)發(fā)布商之間不 必要的糾紛。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明解決的問(wèn)題是提供一種打印控制方法和裝置,能夠保 證實(shí)現(xiàn)每張需要打印的票面數(shù)據(jù)完整打印在票面上,實(shí)現(xiàn)票面數(shù)據(jù)的有效打印。
本發(fā)明提供了一種打印控制方法,包括步驟
將打印機(jī)的打印過(guò)程劃分為不同的工作階段; 實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信息;
根據(jù)所獲取的不同工作階段的打印機(jī)狀態(tài)信息,進(jìn)行相應(yīng)的打印過(guò)程控制。
其中,按照以下步驟相應(yīng)控制打印機(jī)的打印過(guò)程 在發(fā)送打印數(shù)據(jù)前,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第一預(yù)定操作; 在打印機(jī)接收打印任務(wù)后,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù) 定操作;
打印機(jī)進(jìn)入打印過(guò)程后,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定 操作。
其中,所述第一預(yù)定操作具體為 如果打印機(jī)處于可正常打印狀態(tài),則下發(fā)打印任務(wù); 如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)發(fā)生有錯(cuò)誤,等待錯(cuò)誤恢復(fù)后, 下發(fā)打印任務(wù)。
其中,所述第二預(yù)定操作具體為
如果打印機(jī)處于正常未進(jìn)入打印狀態(tài),打印機(jī)繼續(xù)等待進(jìn)入打印過(guò)程; 如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印任務(wù)的處理;
如果當(dāng)前打印機(jī)處于禁止打印狀態(tài),重發(fā)本次打印的票據(jù)和/或者登記本 次打印票據(jù)為無(wú)效票據(jù)。
其中,所述第三預(yù)定^乘作具體為
如果打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中沒(méi)有出錯(cuò),則打印結(jié)束;
如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),則清除打印緩 沖區(qū),并設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的禁止打印位和打印非正常完成位。
其中,還包括步驟如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中 出錯(cuò),登記本次打印票據(jù)為無(wú)效票據(jù)。
其中,還包括步驟接收切刀指令,結(jié)束打印任務(wù)。
其中,當(dāng)所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)處于打印正常完成狀態(tài)時(shí), 所打印票面完整有效。 本發(fā)明還提供了一種打印控制裝置,該打印控制裝置包括階段劃分單元、
打印機(jī)狀態(tài)獲取單元和打印過(guò)程控制單元,其中,
階段劃分單元,用于打印機(jī)的打印過(guò)程劃分為不同的工作階段; 打印機(jī)狀態(tài)獲取單元,用于實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信息; 打印過(guò)程控制單元,用于根據(jù)打印機(jī)狀態(tài)獲取單元所獲取的不同工作階
段的打印機(jī)狀態(tài)信息,進(jìn)行相應(yīng)的打印過(guò)程控制。
其中,打印過(guò)程控制單元包括
第一預(yù)定操作執(zhí)行單元,用于在發(fā)送打印數(shù)據(jù)前,根據(jù)所獲取的打印機(jī)
狀態(tài)信息,執(zhí)行第一預(yù)定操作;
第二預(yù)定操作執(zhí)行單元,用于在打印機(jī)接收打印任務(wù)后,根據(jù)所獲取的 打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù)定操作;
第三預(yù)定操作執(zhí)行單元,用于在打印機(jī)進(jìn)入打印過(guò)程后,根據(jù)所獲取的 打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定操作。
其中,所述第一預(yù)定操作具體為
如果打印機(jī)處于可正常打印狀態(tài),則下發(fā)打印任務(wù);
如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)發(fā)生有錯(cuò)誤,等待錯(cuò)誤恢復(fù)后, 下發(fā)打印任務(wù)。
其中,所述第二預(yù)定操作具體為
如果打印機(jī)處于正常未進(jìn)入打印狀態(tài),打印機(jī)繼續(xù)等待進(jìn)入打印過(guò)程; 如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印任務(wù)的處理; 如果當(dāng)前打印機(jī)處于禁止打印狀態(tài),重發(fā)本次打印的票據(jù)和/或者登記本 次打印票據(jù)為無(wú)效票據(jù)。
其中,所述第三預(yù)定操作具體為
如果打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中沒(méi)有出錯(cuò),則打印結(jié)束; 如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),則清除打印緩
沖區(qū),并設(shè)置打印^u實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的禁止打印位和打印非正常完成位。 其中,還包括無(wú)效票據(jù)登記裝置,用于當(dāng)打印機(jī)狀態(tài)信息顯示打印機(jī)在
打印過(guò)程中出錯(cuò),登記本次打印票據(jù)為無(wú)效票據(jù)。
7
其中,還包括切刀單元,用于根據(jù)切刀指令,執(zhí)行切刀操:作。 與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)
1、 本發(fā)明將打印機(jī)的打印過(guò)程劃分為不同的工作階段,實(shí)時(shí)獲取打印機(jī) 在不同工作階段的狀態(tài)信息,根據(jù)所獲取的打印機(jī)狀態(tài)信息進(jìn)行相應(yīng)的打印
過(guò)程控制,直到打印機(jī)處于打印正常完成狀態(tài),打印出完整有效的票面,從 而實(shí)現(xiàn)了票面數(shù)據(jù)的完整有效的打印。
2、 通過(guò)本發(fā)明,可以實(shí)現(xiàn)票面數(shù)據(jù)的完整有效的打印,從而保證了票據(jù) 用戶的財(cái)產(chǎn)利益,并避免了票據(jù)用戶與票據(jù)發(fā)布商之間不必要的糾紛。
圖1為本發(fā)明提供的打印控制方法的流程圖2a、圖2b、圖2c為表示打印機(jī)實(shí)時(shí)狀態(tài)的三個(gè)字節(jié)的結(jié)構(gòu)示意圖; 圖3為本發(fā)明提供的打印控制方法在頁(yè)模式下,對(duì)打印機(jī)進(jìn)行控制的流 程圖4為本發(fā)明提供的打印控制方法在標(biāo)準(zhǔn)模式下,對(duì)打印機(jī)進(jìn)行控制的 流程圖5為本發(fā)明提供的打印控制裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
為使本發(fā)明的目的、技術(shù)方案更加清楚明白,以下參照附圖并舉實(shí)施例,
對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說(shuō)明。
本發(fā)明提供了一種打印控制方法,其基本思想是在開(kāi)始發(fā)送打印任務(wù)
后,定期檢測(cè)打印機(jī)狀態(tài),根據(jù)打印機(jī)檢測(cè)的結(jié)果,對(duì)打印任務(wù)進(jìn)行控制。 本發(fā)明提供的打印控制方法包括以下步驟 步驟S101:將打印機(jī)的打印過(guò)程劃分為不同的工作階段; 本發(fā)明可以通過(guò)運(yùn)用上位機(jī)控制軟件對(duì)打印機(jī)的打印過(guò)程進(jìn)行劃分。 具體可以將打印機(jī)的打印過(guò)程劃分為打印前、打印過(guò)程中、打印完成
后等階段。
或過(guò)程中、打印機(jī)啟動(dòng)打印前、后或打印過(guò)程中、打印完成后等階段。
步驟S102:實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信息; 在上位機(jī)上,運(yùn)行有控制軟件程序,該上位機(jī)控制軟件負(fù)責(zé)與打印機(jī)之 間的通訊、實(shí)時(shí)獲取打印機(jī)狀態(tài)、打印機(jī)狀態(tài)的解析、設(shè)置有打印控制指令, 根據(jù)打印機(jī)的狀態(tài)選擇發(fā)送控制指令到打印機(jī),控制打印機(jī)的打印動(dòng)作。所 述上位機(jī)包括但不限于計(jì)算機(jī)、筆記本電腦等各類具有數(shù)據(jù)處理能力的電子 設(shè)備。
在打印機(jī)上存在實(shí)時(shí)狀態(tài)記錄單元,該單元實(shí)時(shí)記錄打印機(jī)的工作狀態(tài), 根據(jù)打印機(jī)的工作狀態(tài)設(shè)置打印機(jī)的實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的內(nèi)容。
打印機(jī)具有禁止打印狀態(tài)、錯(cuò)誤狀態(tài)、可正常打印狀態(tài)、正常未進(jìn)入打 印狀態(tài)、進(jìn)入打印狀態(tài)、正在打印狀態(tài)、打印結(jié)束狀態(tài)、打印非正常完成狀 態(tài)、打印正常完成狀態(tài)等不同的工作狀態(tài)。
上位機(jī)控制軟件在下發(fā)數(shù)據(jù)前通過(guò)實(shí)時(shí)指令查詢打印機(jī)的狀態(tài),打印機(jī) 相應(yīng)返回 一次當(dāng)前的狀態(tài)信息。
需要說(shuō)明的是,下發(fā)數(shù)據(jù)前,打印機(jī)的狀態(tài)為錯(cuò)誤狀態(tài)或者為可正常打 印狀態(tài)。
下面對(duì)各種打印機(jī)的工作狀態(tài)作一介紹
1、 禁止打印狀態(tài)打印機(jī)出錯(cuò)后打印機(jī)進(jìn)入禁止打印狀態(tài),在此狀態(tài)下 打印機(jī)不執(zhí)行任何打印動(dòng)作,打印機(jī)在收到清除禁止打印狀態(tài)指令后退出禁 止打印狀態(tài)。
2、 錯(cuò)誤狀態(tài)打印機(jī)出現(xiàn)錯(cuò)誤的狀態(tài)。包括缺紙、打開(kāi)上蓋、打印頭過(guò) 熱、找不到標(biāo)記等多種錯(cuò)誤情況。
3、 可正常打印狀態(tài)打印機(jī)無(wú)錯(cuò)并且能夠正常打印的狀態(tài)。
4、 正常未進(jìn)入打印狀態(tài)打印機(jī)需要繼續(xù)等待以進(jìn)入打印過(guò)程的狀態(tài)。
5、 進(jìn)入打印狀態(tài)打印機(jī)可以繼續(xù)進(jìn)入打印過(guò)程的狀態(tài)。
6、 正在打印狀態(tài)打印機(jī)處于票面打印進(jìn)程中的狀態(tài)。
7、 打印結(jié)束狀態(tài)打印過(guò)程完成的狀態(tài)。 8、 打印非正常完成狀態(tài)即為打印機(jī)本次打印沒(méi)有正常完成,需要重新
發(fā)送本頁(yè)打印票據(jù)數(shù)據(jù)的狀態(tài)。
根據(jù)打印結(jié)果判斷是否處于打印非正常完成狀態(tài),例如在打印過(guò)程中如
果出現(xiàn)錯(cuò)誤如上蓋抬起、紙盡、找不到標(biāo)記、打印頭過(guò)熱、切刀錯(cuò)誤等問(wèn)題, 那么打印機(jī)的狀態(tài)為打印非正常完成狀態(tài)。
9、 打印正常完成狀態(tài)才艮據(jù)打印結(jié)果判斷,本次打印正常完成,可以下
發(fā)下一頁(yè)打印票據(jù)數(shù)據(jù)的狀態(tài)。。
打印機(jī)的實(shí)時(shí)狀態(tài)信息,可以用多個(gè)字節(jié)分組以及字節(jié)的位來(lái)表示,不 同字節(jié)以及每個(gè)字節(jié)不同的位對(duì)應(yīng)指示打印機(jī)的各種狀態(tài)。上位機(jī)控制軟件 根據(jù)這些狀態(tài)對(duì)打印機(jī)的動(dòng)作進(jìn)行控制,從而做到對(duì)票面打印的有效控制。
上位機(jī)控制軟件定義實(shí)時(shí)狀態(tài)的標(biāo)志字節(jié),以表示打印機(jī)所處的不同狀 態(tài)和不同階段。圖2a、圖2b、圖2c中分別以3個(gè)字節(jié)表示打印機(jī)的各種狀態(tài)。 具體為字節(jié)1用于表示打印機(jī)處于錯(cuò)誤狀態(tài),并且字節(jié)1中的不同位用于 表示不同的錯(cuò)誤問(wèn)題,參見(jiàn)圖2a,其中,位1表示紙盡,位2表示上蓋抬起, 位3表示找不到黑標(biāo),位4表示打印頭過(guò)熱,位5表示切刀錯(cuò),位6、位7和 位8空余,用于以后定義其他打印機(jī)的錯(cuò)誤問(wèn)題。字節(jié)2的前4位(即位1、 位2、位3、位4)依次用于表示禁止打印狀態(tài)、可正常打印狀態(tài)、正常未進(jìn) 入打印狀態(tài)、進(jìn)入打印狀態(tài),為了以后打印機(jī)狀態(tài)信息定義的擴(kuò)展,其余位 空余,參見(jiàn)圖2b。字節(jié)3的前4位(即位1、位2、位3、位4)依次用于正 在打印狀態(tài)、打印結(jié)束狀態(tài)、打印正常完成狀態(tài)、打印非正常完成狀態(tài),參 見(jiàn)圖2c,為了以后打印機(jī)狀態(tài)信息定義的擴(kuò)展,其余位空余。
上位機(jī)控制軟件可以通過(guò)發(fā)送實(shí)時(shí)指令查詢打印機(jī)的實(shí)時(shí)狀態(tài)標(biāo)志字 節(jié),每次向打印機(jī)發(fā)送查詢指令后,打印機(jī)即返回一次狀態(tài)標(biāo)志字節(jié)給上位 機(jī)控制軟件。
步驟S103:根據(jù)所獲取的不同工作階段打印機(jī)狀態(tài)信息,對(duì)打印機(jī)進(jìn)行 相應(yīng)的打印過(guò)程控制。
需要說(shuō)明的是,當(dāng)所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)處于打印正常完 成狀態(tài)時(shí),所打印票面完整有效。
在本發(fā)明中,打印機(jī)按照工作模式可以分為頁(yè)模式打印和標(biāo)準(zhǔn)模式打印。
頁(yè)模式是指打印機(jī)把所有打印內(nèi)容一次全部存儲(chǔ)到存儲(chǔ)器中(假定存
儲(chǔ)了一個(gè)頁(yè)面的打印數(shù)據(jù)),該模式在收到上位機(jī)控制軟件發(fā)送的打印指令的 情況下才進(jìn)行數(shù)據(jù)打印。在頁(yè)模式下,票面打印過(guò)程定義為從開(kāi)始打印到本 頁(yè)面數(shù)據(jù)打印完成。
標(biāo)準(zhǔn)模式是指只要打印機(jī)的行緩沖區(qū)滿(即內(nèi)容排滿一行緩沖區(qū))或 者打印機(jī)收到打印指令,打印機(jī)就進(jìn)行數(shù)據(jù)打印。在標(biāo)準(zhǔn)模式下,票面打印 過(guò)程定義為從開(kāi)始打印到收到切刀指令執(zhí)行切紙前。
下面分別根據(jù)頁(yè)模式與標(biāo)準(zhǔn)模式,說(shuō)明運(yùn)用本發(fā)明提供的打印控制方法, 實(shí)現(xiàn)票面lt據(jù)打印的過(guò)程。
參見(jiàn)圖3,在頁(yè)模式打印下,運(yùn)用本發(fā)明提供的打印控制方法,具體實(shí)現(xiàn) 步驟為
步驟S301:下發(fā)數(shù)據(jù)前,獲取打印機(jī)狀態(tài)。
如前所述,在打印機(jī)上存在實(shí)時(shí)狀態(tài)記錄單元,該單元實(shí)時(shí)記錄打印機(jī) 的工作狀態(tài),根據(jù)打印機(jī)的工作狀態(tài)設(shè)置打印機(jī)的實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的內(nèi)容。 步驟S302:根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第一預(yù)定操作; 具體為
如果打印機(jī)處于可正常打印狀態(tài),則上位機(jī)控制軟件下發(fā)打印任務(wù); 否則,進(jìn)行錯(cuò)誤處理,錯(cuò)誤處理后,下發(fā)打印任務(wù)。 其中,打印機(jī)任務(wù)包括設(shè)置頁(yè)模式、設(shè)置頁(yè)面參數(shù),并下發(fā)票面數(shù)據(jù)和 打印指令。
當(dāng)然,如果在標(biāo)準(zhǔn)模式下,打印機(jī)任務(wù)為包括設(shè)置標(biāo)準(zhǔn)模式、設(shè)置頁(yè)面 參數(shù),并下發(fā)票面數(shù)據(jù)和打印指令。
上述的錯(cuò)誤處理具體為如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)處于 錯(cuò)誤狀態(tài),那么等待錯(cuò)誤恢復(fù)后,下發(fā)指令清除字節(jié)1的全部位以及字節(jié)2 的禁止打印位;
如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)不處于錯(cuò)誤狀態(tài),那么清除字 節(jié)2的禁止打印位。因?yàn)槿绻诒敬螖?shù)據(jù)打印前,打印機(jī)發(fā)生過(guò)4昔誤,那么
即使下發(fā)本次數(shù)據(jù)時(shí),錯(cuò)誤已經(jīng)克服,字節(jié)2的禁止打印位還是存在,因此 需要對(duì)該禁止打印位進(jìn)行清除。
可以理解的是使打印機(jī)恢復(fù)到正常狀態(tài)的情況有很多,例如,紙張用
盡后重新裝紙,打開(kāi)上蓋后合上上蓋等。
步驟S303:打印機(jī)接收打印任務(wù),獲取打印機(jī)的狀態(tài)信息。 通過(guò)上位機(jī)控制軟件發(fā)送狀態(tài)查詢指令給打印機(jī),打印機(jī)返回當(dāng)前的狀 態(tài)信息給上位機(jī)控制軟件。
步驟S304:根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù)定操作。 此時(shí),具體有三種情況
(1) 如果當(dāng)前打印機(jī)處于正常未進(jìn)入打印狀態(tài),則繼續(xù)等待進(jìn)入打印過(guò)
程;
(2) 如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印任務(wù)的處理。 具體為如果沒(méi)有出現(xiàn)錯(cuò)誤,則打印機(jī)正在執(zhí)行打印機(jī),則打印機(jī)處于
進(jìn)入打印狀態(tài)。
(3) 如果當(dāng)前打印機(jī)處于禁止打印狀態(tài),上位機(jī)控制軟件可以重發(fā)本次 打印的票據(jù)、登記本次打印票據(jù)為無(wú)效票據(jù)。具體操作為如果出現(xiàn)錯(cuò)誤, 打印積3殳置字節(jié)1的禁止打印狀態(tài),并設(shè)置字節(jié)2的打印非正常完成位,此 時(shí)上位機(jī)控制軟件認(rèn)為本次打印的票據(jù)為無(wú)效票據(jù),從而上位機(jī)控制軟件可 以重發(fā)本次打印的票據(jù)和/或者登記本次打印票據(jù)為無(wú)效票據(jù)。
步驟S305:打印機(jī)進(jìn)入打印過(guò)程,進(jìn)行票據(jù)打印,獲取打印機(jī)的狀態(tài)信
自
步驟S306:根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定操作。 這里,具體預(yù)定操作為
(1) 如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中沒(méi)有出錯(cuò),則打 印結(jié)束。本次票據(jù)it據(jù)打印結(jié)束后,清除打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)中字節(jié)3 的正在打印位,并設(shè)置打印結(jié)束位。
(2) 如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),打印機(jī)執(zhí) 行以下動(dòng)作 清除打印緩沖區(qū);
設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)中字節(jié)2的禁止打印位,以表示打印機(jī)進(jìn)
入禁止打印狀態(tài);
設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)中字節(jié)3的打印非正常完成位,以表示本
次票據(jù)數(shù)據(jù)的打印非正常完成,從而上位機(jī)控制軟件認(rèn)為本次打印的票據(jù)為 無(wú)效票據(jù),在此可以重發(fā)本次打印的票據(jù)和/或者登記本次打印票據(jù)為無(wú)效票 據(jù)。
機(jī)控制軟件可以通過(guò)登記本次票據(jù)的票號(hào),登記本次打印票據(jù)為無(wú)效票據(jù), 將該票據(jù)作為廢票處理。
步驟S307:獲取打印機(jī)的狀態(tài)信息,當(dāng)該狀態(tài)信息顯示打印機(jī)處于打印 正常完成狀態(tài),則打印出有效票據(jù)。
在所返回的實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的字節(jié)3中設(shè)置有打印正常完成位時(shí),從 而上位機(jī)控制軟件得知打印機(jī)處于打印正常完成狀態(tài),打印機(jī)打印出有效票 據(jù)。
需要說(shuō)明的是,上面實(shí)施例中的上位機(jī)控制軟件可以用具有相同功能的 模塊、器件進(jìn)行代替。
參見(jiàn)圖4,在標(biāo)準(zhǔn)模式打印下,運(yùn)用本發(fā)明提供的打印控制方法,具體實(shí) 現(xiàn)步驟為
需要說(shuō)明的是,在標(biāo)準(zhǔn)模式下,收到切刀指令時(shí),打印過(guò)程直接結(jié)束, 根據(jù)所返回的實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)是否設(shè)置有打印正常完成位時(shí),來(lái)判斷打印 機(jī)是否處于打印正常完成狀態(tài),以及打印機(jī)是否打印出有效票據(jù)。
步驟S401:下發(fā)數(shù)據(jù)前,獲取打印機(jī)狀態(tài)。
如前所述,在打印才幾上存在實(shí)時(shí)狀態(tài)記錄單元,該單元實(shí)時(shí)記錄打印機(jī) 的工作狀態(tài),根據(jù)打印機(jī)的工作狀態(tài)設(shè)置打印機(jī)的實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的內(nèi)容。 步驟S402:根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第一預(yù)定操作; 具體為
如果打印機(jī)處于可正常打印狀態(tài),則上位機(jī)控制軟件下發(fā)打印任務(wù);
否則,進(jìn)行錯(cuò)誤處理,錯(cuò)誤處理后,下發(fā)打印任務(wù)。
其中,打印機(jī)任務(wù)包括設(shè)置標(biāo)準(zhǔn)模式、設(shè)置頁(yè)面參數(shù),并下發(fā)票面數(shù)據(jù) 和打印指令。
上述的錯(cuò)誤處理具體為如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)處于 錯(cuò)誤狀態(tài),那么等待錯(cuò)誤恢復(fù)后,下發(fā)指令清除字節(jié)1的全部位以及字節(jié)2
的禁止打印位;
如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)不處于錯(cuò)誤狀態(tài),那么清除字 節(jié)2的禁止打印位。因?yàn)槿绻诒敬螖?shù)據(jù)打印前,打印沖幾發(fā)生過(guò)錯(cuò)誤,那么 即使下發(fā)本次數(shù)據(jù)時(shí),錯(cuò)誤已經(jīng)克服,字節(jié)2的禁止打印位還是存在,因此 需要對(duì)該禁止打印位進(jìn)行清除。
可以理解的是使打印機(jī)恢復(fù)到正常狀態(tài)的情況有很多,例如,紙張用 盡后重新裝紙,打開(kāi)上蓋后合上上蓋等。
步驟S403:打印機(jī)接收打印任務(wù),獲取打印機(jī)的狀態(tài)信息。
通過(guò)上位機(jī)控制軟件發(fā)送狀態(tài)查詢指令給打印機(jī),打印機(jī)返回當(dāng)前的狀 態(tài)信息給上位機(jī)控制軟件。
步驟S404:根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù)定操作。
此時(shí),具體有三種情況
(1) 如果當(dāng)前打印機(jī)處于正常未進(jìn)入打印狀態(tài),則繼續(xù)等待進(jìn)入打印過(guò)
程;
(2) 如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印任務(wù)的處理。 具體為如果沒(méi)有出現(xiàn)錯(cuò)誤,則打印機(jī)正在執(zhí)行打印機(jī),則打印機(jī)處于
進(jìn)入打印狀態(tài)。
(3 )如果當(dāng)前打印機(jī)處于禁止打印狀態(tài)上位機(jī)控制軟件可以重發(fā)本次打 印的票據(jù)、登記本次打印票據(jù)為無(wú)效票據(jù)。具體才喿作為如果出現(xiàn)錯(cuò)誤,打 印機(jī)設(shè)置字節(jié)1的禁止打印狀態(tài),并設(shè)置字節(jié)2的打印非正常完成位,此時(shí) 上位機(jī)控制軟件認(rèn)為本次打印的票據(jù)為無(wú)效票據(jù),從而上位機(jī)控制軟件可以 重發(fā)本次打印的票據(jù)和/或者登記本次打印票據(jù)為無(wú)效票據(jù)。
步驟S405:打印機(jī)進(jìn)入打印過(guò)程,進(jìn)行票據(jù)打印,獲取打印機(jī)的狀態(tài)信
自
步驟S406:當(dāng)打印機(jī)收到切刀指令時(shí),結(jié)束打印過(guò)程,執(zhí)行步驟S407, 否則,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定操作。 這里,具體預(yù)定操作為
(1) 如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中沒(méi)有出錯(cuò),則打 印結(jié)束,執(zhí)行步驟S407。
由于打印機(jī)的工作模式為標(biāo)準(zhǔn)模式打印,如前所述,在標(biāo)準(zhǔn)模式下,以 收到切刀指令作為票面打印過(guò)程的結(jié)束。
本次票據(jù)數(shù)據(jù)打印結(jié)束后,清除打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)中字節(jié)3的正 在打印位,并設(shè)置打印結(jié)束位。
(2) 如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),打印機(jī)執(zhí) 行以下動(dòng)作
清除打印緩沖區(qū);
設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)中字節(jié)2的禁止打印位,以表示打印機(jī)進(jìn) 入禁止打印狀態(tài);
設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)中字節(jié)3的打印非正常完成位,以表示本 次票據(jù)數(shù)據(jù)的打印非正常完成,從而上位機(jī)控制軟件認(rèn)為本次打印的票據(jù)為 無(wú)效票據(jù),在此可以重發(fā)本次打印的票據(jù)和/或者登記本次打印票據(jù)為無(wú)效票 據(jù)。
機(jī)控制軟件可以通過(guò)登記本次票據(jù)的票號(hào),將該票據(jù)作為廢票處理。
步驟S407:獲取打印機(jī)的狀態(tài)信息,當(dāng)該狀態(tài)信息顯示打印機(jī)處于打印
正常完成狀態(tài),則打印出有效票據(jù)。
在所返回的實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的字節(jié)3中:&置有打印正常完成位時(shí),乂人
而上位機(jī)控制軟件得知打印機(jī)處于打印正常完成狀態(tài),打印機(jī)打印出有效票據(jù)。
需要說(shuō)明的是,上面實(shí)施例中的上位機(jī)控制軟件可以用具有同上位機(jī)控 制軟件相同功能的模塊、器件進(jìn)行代替。
由上述流程可見(jiàn),本發(fā)明提供的打印控制方法將打印機(jī)的打印過(guò)程劃分 為不同的工作階段,實(shí)時(shí)獲取打印機(jī)在不同工作階段的狀態(tài)信息,根據(jù)所獲 取的打印機(jī)狀態(tài)信息進(jìn)行相應(yīng)的打印過(guò)程控制,直到打印機(jī)處于打印正常完 成狀態(tài),打印出完整有效的票面,從而實(shí)現(xiàn)了票面數(shù)據(jù)的有效打印,保證票 面數(shù)據(jù)打印任務(wù)的完成。
基于本發(fā)明提供的打印控制方法,本發(fā)明還提供了一種打印控制裝置,
參見(jiàn)圖5,該打印控制裝置包括階段劃分單元501、打印機(jī)狀態(tài)獲取單元502
和打印過(guò)程控制單元503,其中,
階段劃分單元501,用于打印機(jī)的打印過(guò)程劃分為不同的工作階段; 打印機(jī)狀態(tài)獲取單元502,用于實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信
自
打印過(guò)程控制單元503,用于根據(jù)打印機(jī)狀態(tài)獲取單元所獲取的不同工作 階段的打印機(jī)狀態(tài)信息,進(jìn)行相應(yīng)的打印過(guò)程控制。
在本發(fā)明中,打印過(guò)程控制單元503包括有第一預(yù)定操作執(zhí)行單元、第 二預(yù)定操作執(zhí)行單元和第三預(yù)定操作執(zhí)行單元;
上述第一預(yù)定操作執(zhí)行單元,用于在發(fā)送打印數(shù)據(jù)前,才艮據(jù)所獲取的打 印機(jī)狀態(tài)信息,執(zhí)行第一預(yù)定操作;
上述第二預(yù)定操作執(zhí)行單元,用于在打印機(jī)接收打印任務(wù)后,根據(jù)所獲 取的打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù)定操作;
上述第三預(yù)定操作執(zhí)行單元,用于在打印機(jī)進(jìn)入打印過(guò)程后,根據(jù)所獲 取的打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定操作。
上面所述第一預(yù)定操作具體為如果打印機(jī)處于可正常打印狀態(tài),則下 發(fā)打印任務(wù);如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)發(fā)生有錯(cuò)誤,等待錯(cuò) 誤恢復(fù)后,下發(fā)打印任務(wù)。
上面所述第二預(yù)定操作具體為如果打印機(jī)處于正常未進(jìn)入打印狀態(tài), 打印機(jī)繼續(xù)等待進(jìn)入打印過(guò)程;如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印 任務(wù)的處理;如果當(dāng)前打印機(jī)處于禁止打印狀態(tài),重發(fā)本次打印的票據(jù)和/或 者登記本次打印票據(jù)為無(wú)效票據(jù)。
上面所述第三預(yù)定操作具體為如果打印機(jī)狀態(tài)信息顯示打印機(jī)在打印
過(guò)程中沒(méi)有出錯(cuò),則打印結(jié)束;如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印
過(guò)程中出錯(cuò),則清除打印緩沖區(qū),并設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的禁止打 印位和打印非正常完成位。
在本發(fā)明提供的打印控制裝置中,還包括無(wú)效票據(jù)登記裝置,該裝置用 于當(dāng)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),登記本次打印票據(jù)為無(wú) 效票據(jù)。
在本發(fā)明提供的打印控制裝置中,還可以包括切刀單元,該切刀單元用 于根據(jù)切刀指令,執(zhí)行切刀操作。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普 通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn) 飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種打印控制方法,其特征在于,包括步驟:將打印機(jī)的打印過(guò)程劃分為不同的工作階段;實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信息;根據(jù)所獲取的不同工作階段的打印機(jī)狀態(tài)信息,進(jìn)行相應(yīng)的打印過(guò)程控制。
2、 如權(quán)利要求1所述的方法,其特征在于,按照以下步驟相應(yīng)控制打 印才幾的打印過(guò)程在發(fā)送打印數(shù)據(jù)前,根據(jù)所獲取的打印機(jī)狀態(tài)信息,才丸行第一預(yù)定操作; 在打印機(jī)接收打印任務(wù)后,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù) 定操作;打印機(jī)進(jìn)入打印過(guò)程后,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定 操作。
3、 如權(quán)利要求2所述的方法,其特征在于,所述第一預(yù)定操作具體為 如果打印機(jī)處于可正常打印狀態(tài),則下發(fā)打印任務(wù); 如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)發(fā)生有錯(cuò)誤,等待錯(cuò)誤恢復(fù)后,下發(fā)打印任務(wù)。
4、 如權(quán)利要求2所述的方法,其特征在于,所述第二預(yù)定操作具體為 如果打印機(jī)處于正常未進(jìn)入打印狀態(tài),打印機(jī)繼續(xù)等待進(jìn)入打印過(guò)程; 如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印任務(wù)的處理;如果當(dāng)前打印機(jī)處于禁止打印狀態(tài),重發(fā)本次打印的票據(jù)和/或者登記本 次打印票據(jù)為無(wú)效票據(jù)。
5、 如權(quán)利要求2所述的方法,其特征在于,所述第三預(yù)定操作具體為 如果打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中沒(méi)有出錯(cuò),則打印結(jié)束; 如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),則清除打印緩
6、 如權(quán)利要求5所述的方法,其特征在于,還包括步驟如果根據(jù)打印 機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),登記本次打印票據(jù)為無(wú)效票據(jù)。
7、 如權(quán)利要求2所述的方法,其特征在于,還包括步驟接收切刀指令, 結(jié)束打印任務(wù)。
8、 如權(quán)利要求l所述的方法,其特征在于,當(dāng)所獲取的打印機(jī)狀態(tài)信息 顯示打印機(jī)處于打印正常完成狀態(tài)時(shí),所打印票面完整有效。
9、 一種打印控制裝置,其特征在于,該打印控制裝置包括階段劃分單元、 打印機(jī)狀態(tài)獲取單元和打印過(guò)程控制單元,其中,階段劃分單元,用于打印機(jī)的打印過(guò)程劃分為不同的工作階段; 打印機(jī)狀態(tài)獲取單元,用于實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信息; 打印過(guò)程控制單元,用于根據(jù)打印機(jī)狀態(tài)獲取單元所獲取的不同工作階 段的打印機(jī)狀態(tài)信息,進(jìn)行相應(yīng)的打印過(guò)程控制。
10、 如權(quán)利要求9所述的裝置,其特征在于,打印過(guò)程控制單元包括 第一預(yù)定操作執(zhí)行單元,用于在發(fā)送打印數(shù)據(jù)前,根據(jù)所獲取的打印機(jī)狀態(tài)信息,執(zhí)行第一預(yù)定操作;第二預(yù)定操作執(zhí)行單元,用于在打印機(jī)接收打印任務(wù)后,根據(jù)所獲取的 打印機(jī)狀態(tài)信息,執(zhí)行第二預(yù)定操作;第三預(yù)定操作執(zhí)行單元,用于在打印機(jī)進(jìn)入打印過(guò)程后,根據(jù)所獲取的 打印機(jī)狀態(tài)信息,執(zhí)行第三預(yù)定操作。
11、 如權(quán)利要求IO所述的裝置,其特征在于,所述第一預(yù)定操作具體為 如果打印機(jī)處于可正常打印狀態(tài),則下發(fā)打印任務(wù); 如果所獲取的打印機(jī)狀態(tài)信息顯示打印機(jī)發(fā)生有錯(cuò)誤,等待錯(cuò)誤恢復(fù)后,下發(fā)打印任務(wù)。
12、 如權(quán)利要求10所述的裝置,其特征在于,所述第二預(yù)定操作具體為 如果打印機(jī)處于正常未進(jìn)入打印狀態(tài),打印機(jī)繼續(xù)等待進(jìn)入打印過(guò)程; 如果打印機(jī)處于進(jìn)入打印狀態(tài),則進(jìn)行打印任務(wù)的處理; 如果當(dāng)前打印機(jī)處于禁止打印狀態(tài),重發(fā)本次打印的票據(jù)和/或者登記本次打印票據(jù)為無(wú)效票據(jù)。
13、 如權(quán)利要求10所述的裝置,其特征在于,所述第三預(yù)定操作具體為 如果打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中沒(méi)有出錯(cuò),則打印結(jié)束;如果根據(jù)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),則清除打印緩 沖區(qū),并設(shè)置打印機(jī)實(shí)時(shí)狀態(tài)標(biāo)志字節(jié)的禁止打印位和打印非正常完成位。
14、 如權(quán)利要求13所述的裝置,其特征在于,還包括無(wú)效票據(jù)登記裝置, 用于當(dāng)打印機(jī)狀態(tài)信息顯示打印機(jī)在打印過(guò)程中出錯(cuò),登記本次打印票據(jù)為 無(wú)效票據(jù)。
15、 如權(quán)利要求IO所述的裝置,其特征在于,還包括切刀單元,用于根據(jù)切刀指令,執(zhí)行切刀操作。
全文摘要
本發(fā)明公開(kāi)了一種打印控制方法,包括步驟將打印機(jī)的打印過(guò)程劃分為不同的工作階段;實(shí)時(shí)獲取不同工作階段的打印機(jī)狀態(tài)信息;根據(jù)所獲取的不同工作階段的打印機(jī)狀態(tài)信息,進(jìn)行相應(yīng)的打印過(guò)程控制。另外,本發(fā)明還公開(kāi)了一種打印控制裝置。利用本發(fā)明能夠保證實(shí)現(xiàn)每張需要打印的票面數(shù)據(jù)完整打印在票面上,實(shí)現(xiàn)票面數(shù)據(jù)的有效打印,從而保證了票據(jù)用戶的財(cái)產(chǎn)利益,并避免了票據(jù)用戶與票據(jù)發(fā)布商之間不必要的糾紛。
文檔編號(hào)G06F3/12GK101383070SQ200710145799
公開(kāi)日2009年3月11日 申請(qǐng)日期2007年9月5日 優(yōu)先權(quán)日2007年9月5日
發(fā)明者偉 劉, 彭遠(yuǎn)斌, 許加波, 邱海波, 明 高 申請(qǐng)人:山東新北洋信息技術(shù)股份有限公司