本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種批量打印票據(jù)的控制方法、裝置和系統(tǒng)。
背景技術(shù):
隨著科技的進步,票據(jù)的應用范圍越來越廣,如物流業(yè)的面單、零售業(yè)的優(yōu)惠券、餐飲業(yè)的代金券等。在進行票據(jù)的批量打印時,不僅要求票據(jù)要完整的打印,而且還要求票據(jù)不能重復打印。基于此,相關(guān)技術(shù)提供了一種票據(jù)打印控制方法,該方法主要包括:打印請求裝置在下發(fā)打印任務前和發(fā)送打印任務中,一直檢測打印機的狀態(tài),直到檢測到打印機正常時進行打印,該控制方法在一定程度上能夠保證單個票據(jù)打印的可靠性。
在多頁票據(jù)的連續(xù)打印過程中,上述票據(jù)打印控制方法只能監(jiān)控所有票據(jù)是否已正常打印,不能實時監(jiān)控哪些票據(jù)已經(jīng)打印哪些票據(jù)還未打印,如果所有票據(jù)均正常打印,則可以最終一次性地確認所有票據(jù)均已打印,不會出現(xiàn)問題。當在打印過程中發(fā)生意外時,如打印機發(fā)生故障、通信中斷等,由于無法確認哪些票據(jù)已正常打印、哪些票據(jù)未打印,需要工作人員調(diào)整打印裝置,完成后續(xù)打印任務,這種調(diào)整方式受工作人員的影響,容易發(fā)生重復打印或丟單打印的現(xiàn)象。
針對相關(guān)票據(jù)打印控制技術(shù)中存在的批量打印多頁票據(jù)時的可靠性較差問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明實施例的目的在于提供一種批量打印票據(jù)的控制方法、裝置和系統(tǒng),以提高批量打印票據(jù)的可靠性。
第一方面,本發(fā)明實施例提供了一種批量打印票據(jù)的控制方法,包括:在批量打印票據(jù)的過程中,接收打印機反饋的狀態(tài)信息,其中,所述狀態(tài)信息包括所述打印機的工作信息和已打印票據(jù)的標識碼;根據(jù)所述工作信息判斷所述打印機是否發(fā)生故障;當所述打印機發(fā)生故障時,根據(jù)所述已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù)。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第一種可能的實施方式,上述方法還包括:生成包含多頁票據(jù)的打印任務,其中,所述打印任務中的每頁票據(jù)的打印數(shù)據(jù)包含一個標識碼;向打印機下發(fā)所述打印任務的打印數(shù)據(jù)。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第二種可能的實施方式,其中,上述工作信息包括工作狀態(tài)字段和故障信息字段,根據(jù)所述工作信息判斷所述打印機是否發(fā)生故障包括:檢查所述工作信息中的工作狀態(tài)字段;其中,所述工作狀態(tài)字段用于標識所述打印機為空閑、正在打印或發(fā)生故障;當所述工作狀態(tài)字段標識為打印機發(fā)生故障時,根據(jù)所述工作信息中的故障信息字段確定所述打印機的故障類型。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第三種可能的實施方式,其中,根據(jù)所述已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù)包括:根據(jù)所述已打印票據(jù)的標識碼,從打印任務包含的所有票據(jù)的標識碼中統(tǒng)計未打印的票據(jù)的標識碼及數(shù)量。
結(jié)合第一方面,本發(fā)明實施例提供了第一方面的第四種可能的實施方式,其中,上述方法還包括:當所述打印機正常工作、且所 述打印機反饋的所述狀態(tài)信息中還包括緩存打印數(shù)據(jù)的頁數(shù)時,根據(jù)所述緩存打印數(shù)據(jù)的頁數(shù)和打印機的緩存能力確定本次要發(fā)送的頁數(shù),按照確定的所述本次要發(fā)送的頁數(shù)向所述打印機發(fā)送打印數(shù)據(jù)。
結(jié)合第一方面的上述實施方式,本發(fā)明實施例提供了第一方面的第五種可能的實施方式,其中,在統(tǒng)計所述未打印的票據(jù)之后,所述方法還至少包括以下操作之一:發(fā)出用于確定所述未打印的票據(jù)提示信息;將所述未打印的票據(jù)的打印數(shù)據(jù)發(fā)送至備用打印機進行打??;當檢測到所述打印機正常后,使用所述打印機對所述未打印的票據(jù)的打印數(shù)據(jù)進行打印。
第二方面,本發(fā)明實施例還提供了一種批量打印票據(jù)的控制裝置,包括:狀態(tài)信息接收模塊,用于在批量打印票據(jù)的過程中,接收打印機反饋的狀態(tài)信息,其中,所述狀態(tài)信息包括所述打印機的工作信息和已打印票據(jù)的標識碼;故障判斷模塊,用于根據(jù)所述狀態(tài)信息接收模塊接收的所述狀態(tài)信息中的工作信息判斷所述打印機是否發(fā)生故障;故障處理模塊,用于當所述故障判斷模塊判斷的結(jié)果是所述打印機發(fā)生故障時,根據(jù)所述已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù)。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第一種可能的實施方式,上述裝置還包括:打印任務生成模塊,用于生成包含多頁票據(jù)的打印任務,其中,所述打印任務中的每頁票據(jù)的打印數(shù)據(jù)包含一個標識碼;打印數(shù)據(jù)下發(fā)模塊,用于向打印機下發(fā)所述打印任務生成模塊生成的所述打印任務的打印數(shù)據(jù)。
結(jié)合第二方面,本發(fā)明實施例提供了第二方面的第二種可能的實施方式,上述裝置還包括:打印正常處理模塊,用于當所述故障 判斷模塊判斷的結(jié)果是打印機正常工作、且所述打印機反饋的所述狀態(tài)信息中還包括緩存打印數(shù)據(jù)的頁數(shù)時,根據(jù)所述緩存打印數(shù)據(jù)的頁數(shù)和打印機的緩存能力確定本次要發(fā)送的頁數(shù),按照確定的所述本次要發(fā)送的頁數(shù)向所述打印機發(fā)送打印數(shù)據(jù)。
第三方面,本發(fā)明實施例提供了一種批量打印票據(jù)的控制系統(tǒng),包括上述控制裝置,還包括:打印機,用于接收并打印所述控制裝置下發(fā)的打印數(shù)據(jù),以及向所述控制裝置反饋狀態(tài)信息。
本發(fā)明實施例提供的上述方法、裝置及系統(tǒng),在批量打印票據(jù)的過程中,通過接收打印機反饋的狀態(tài)信息,并根據(jù)該狀態(tài)信息判斷出打印機是否故障,當打印機發(fā)生故障時,能夠根據(jù)該狀態(tài)信息中已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù),進而實現(xiàn)了在批量打印多頁票據(jù)時,有效監(jiān)控每頁票據(jù)的打印狀態(tài),提升了票據(jù)的可靠打印,有效防止了丟單現(xiàn)象。
為使本發(fā)明的上述目的、特征和優(yōu)點能更明顯易懂,下文特舉較佳實施例,并配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發(fā)明的某些實施例,因此不應被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1示出了本發(fā)明實施例所提供的一種批量打印票據(jù)的控制方法的應用環(huán)境示意圖;
圖2示出了本發(fā)明實施例所提供的一種用戶終端的結(jié)構(gòu)框圖;
圖3示出了本發(fā)明實施例所提供的一種批量打印票據(jù)的控制方法的流程圖;
圖4示出了本發(fā)明實施例所提供的一種批量打印票據(jù)的控制裝置的結(jié)構(gòu)框圖;
圖5示出了本發(fā)明實施例所提供的批量打印票據(jù)的控制裝置的另一種結(jié)構(gòu)框圖;
圖6示出了本發(fā)明實施例所提供的批量打印票據(jù)的控制裝置的第三種結(jié)構(gòu)框圖;
圖7示出了本發(fā)明實施例所提供的一種批量打印票據(jù)的控制系統(tǒng)的結(jié)構(gòu)框圖;
圖8示出了本發(fā)明實施例所提供的一種運行于打印機系統(tǒng)中打印請求裝置上的控制方法的流程圖;
圖9示出了本發(fā)明實施例所提供的基于圖7所示系統(tǒng)的批量打印票據(jù)的控制方法的流程圖。
具體實施方式
本發(fā)明實施例所提供一種批量打印票據(jù)的控制方法、裝置和系統(tǒng)可應用于如圖1所示的應用環(huán)境中。如圖1所示,用戶終端100、打印機200位于無線網(wǎng)絡(luò)或有線網(wǎng)絡(luò)300中,通過該無線網(wǎng)絡(luò)或有線網(wǎng)絡(luò)300,用戶終端100與打印機200進行數(shù)據(jù)交互,在實際應用中,本發(fā)明實施例中提供的批量打印票據(jù)的控制方法和裝置可以應用于用戶終端100內(nèi),用以控制打印機200完成批量票據(jù)的打印任務。
于本發(fā)明實施例中,用戶終端100優(yōu)選為計算機等終端設(shè)備,具體可以是智能手機、平板電腦、電子書閱讀器、膝上型便攜計算機、車載電腦等等。
圖2示出了一種可應用于本發(fā)明實施例中的用戶終端的結(jié)構(gòu)框圖。如圖2所示,用戶終端100包括存儲器102、存儲控制器104,一個或多個(圖中僅示出一個)處理器106、外設(shè)接口108、射頻模塊110、音頻模塊112、觸控屏幕114等。這些組件通過一條或多條通訊總線/信號線116相互通訊。
存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實施例中的批量打印票據(jù)的控制方法和裝置對應的程序指令/模塊,處理器106通過運行存儲在存儲器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應用以及數(shù)據(jù)處理,如本發(fā)明實施例提供的批量打印票據(jù)的控制方法。
存儲器102可包括高速隨機存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進行。
外設(shè)接口108將各種輸入/輸出裝置耦合至處理器106以及存儲器102。在一些實施例中,外設(shè)接口108,處理器106以及存儲控制器104可以在單個芯片中實現(xiàn)。在其他一些實例中,他們可以分別由獨立的芯片實現(xiàn)。
射頻模塊110用于接收以及發(fā)送電磁波,實現(xiàn)電磁波與電信號的相互轉(zhuǎn)換,從而與通訊網(wǎng)絡(luò)或者其他設(shè)備進行通訊。
音頻模塊112向用戶提供音頻接口,其可包括一個或多個麥克風、一個或者多個揚聲器以及音頻電路。
觸控屏幕114在用戶終端100與用戶之間同時提供一個輸出及輸入界面。具體地,觸控屏幕114向用戶顯示視頻輸出,這些視頻輸出的內(nèi)容可包括文字、圖形、視頻、及其任意組合。
可以理解,圖2所示的結(jié)構(gòu)僅為示意,用戶終端100還可包括比圖2中所示更多或者更少的組件,或者具有與圖2所示不同的配置。圖2中所示的各組件可以采用硬件、軟件或其組合實現(xiàn)。
下面將結(jié)合本發(fā)明實施例中附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發(fā)明實施例的組件可以以各種不同的配置來布置和設(shè)計。因此,以下對在附圖中提供的本發(fā)明的實施例的詳細描述并非旨在限制要求保護的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實施例?;诒景l(fā)明的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖3所示的本發(fā)明實施例提供的批量打印票據(jù)的控制方法流程圖,該方法可以應用于上述用戶終端中,包括以下步驟:
步驟S302,在批量打印票據(jù)的過程中,接收打印機反饋的狀態(tài)信息,其中,該狀態(tài)信息包括打印機的工作信息和已打印票據(jù)的標識碼。
上述打印機的工作信息包括工作狀態(tài)字段和故障信息字段;工作狀態(tài)字段用于表示打印機的工作狀態(tài),如空閑、正在打印、發(fā)生故障等。標識碼字段表示打印機已打印票據(jù)對應的標識碼,例如ID號。
為了能夠區(qū)分各個票據(jù),本發(fā)明實施例每頁票據(jù)的打印數(shù)據(jù)中包括有標識碼,該標識碼在當前的批量打印任務中具有唯一性,可以是序號,如1、2、3、……,也可以是其它形式的編碼,打印機通過讀取打印數(shù)據(jù)獲取到該標識碼。
步驟S304,根據(jù)上述工作信息判斷打印機是否發(fā)生故障。
步驟S306,當打印機發(fā)生故障時,根據(jù)已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù)。
統(tǒng)計未打印的票據(jù)的具體方式可以包括:根據(jù)已打印票據(jù)的標識碼,從打印任務包含的所有票據(jù)的標識碼中統(tǒng)計未打印的票據(jù)的標識碼及數(shù)量。該統(tǒng)計方式簡單易行,對用戶終端的負荷不會產(chǎn)生太大影響,保證了用戶終端的正常運行。
本實施例的上述方法在批量打印票據(jù)的過程中,通過接收打印機反饋的狀態(tài)信息,并根據(jù)該狀態(tài)信息判斷出打印機是否故障,當打印機發(fā)生故障時,能夠根據(jù)該狀態(tài)信息中已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù),進而實現(xiàn)了在批量打印多頁票據(jù)時,有效監(jiān)控每頁票據(jù)的打印狀態(tài),提升了票據(jù)的可靠打印,有效防止了丟單現(xiàn)象。
上述方法的每頁票據(jù)設(shè)有唯一標識碼(簡稱票據(jù)ID),用戶終端實時接收打印機反饋的狀態(tài)信息,當打印機未發(fā)生故障時,根據(jù)該狀態(tài)信息中已打印票據(jù)的標識碼記錄完成打印的票據(jù),當打印機發(fā)生故障時,根據(jù)已經(jīng)記錄的票據(jù)ID統(tǒng)計未打印的票據(jù),進行后續(xù)處理。
本發(fā)明實施例在進行批量票據(jù)打印時,為了能夠簡化操作,可以將需要打印的多頁票據(jù)的打印數(shù)據(jù)設(shè)置為一個打印任務,每頁票據(jù)設(shè)有唯一的ID號,打印任務的打印數(shù)據(jù)以頁為單位,一頁打印數(shù)據(jù)生成一頁票據(jù)。基于此,上述方法還可以包括:(1)生成包含多頁票據(jù)的打印任務,其中,該打印任務中的每頁票據(jù)的打印數(shù)據(jù)包含一個標識碼;(2)向打印機下發(fā)打印任務中的打印數(shù)據(jù)。
考慮到打印機的故障情況有多種,在具體實現(xiàn)時,可以在工作信息中給出故障信息字段,用故障信息字段表示打印機已發(fā)生的具體故障類型,其可以為2字節(jié)數(shù)據(jù),每個比特表示一種故障,如比 特1表示打印機是否缺紙、比特2表示上蓋是否開啟、比特3表示打印頭是否溫度異常等,基于此,上述根據(jù)工作信息判斷打印機是否發(fā)生故障的步驟可以包括:檢查上述工作信息中的工作狀態(tài)字段;其中,該工作狀態(tài)字段用于標識打印機為空閑、正在打印或發(fā)生故障;當該工作狀態(tài)字段標識為打印機發(fā)生故障時,根據(jù)該工作信息中的故障信息字段確定打印機的故障類型;本實施例中的故障信息字段可以用于標識打印機是否缺紙、打印機的上蓋是否開啟或打印機的打印頭是否溫度異常等。通過這種故障判斷方式,可以有效方便的獲知打印機的具體故障類型,有效提示用戶進行故障維修處理。
進一步地,上述打印機反饋的狀態(tài)信息還可以包括未打印數(shù)據(jù)的頁數(shù)字段(或稱為頁數(shù)量字段),用于表示打印機的緩沖器中保存的未打印數(shù)據(jù)的頁數(shù),或稱為緩存打印數(shù)據(jù)的頁數(shù),簡稱為頁數(shù)量?;诖耍鲜龇椒ㄟ€包括:當打印機正常工作、且打印機反饋的狀態(tài)信息中還包括緩存打印數(shù)據(jù)的頁數(shù)時,根據(jù)上述緩存打印數(shù)據(jù)的頁數(shù)和打印機的緩存能力確定本次要發(fā)送的頁數(shù),按照確定的本次要發(fā)送的頁數(shù)向打印機發(fā)送打印數(shù)據(jù)。該方式通過打印機當前緩存打印數(shù)據(jù)的頁數(shù)和打印機的緩存能力,確定本次要發(fā)送的打印數(shù)據(jù)的頁數(shù),可以有效避免打印機由于內(nèi)存不足導致的處理速度緩慢的問題,保證了打印的速度。
當打印機出現(xiàn)故障后,可以提示報警,也可以轉(zhuǎn)移打印,或者接收到該打印機再次反饋的狀態(tài)信息,確定其正常后繼續(xù)打印等。相應地,在統(tǒng)計未打印的票據(jù)之后,上述方法還至少包括以下操作之一:
(1)發(fā)出用于確定未打印票據(jù)的提示信息;例如,提示未打印票據(jù)的標識號或文件名,未打印票據(jù)的數(shù)量等;
(2)將未打印的票據(jù)的打印數(shù)據(jù)發(fā)送至備用打印機進行打??;
(3)當檢測到打印機正常后,使用該打印機對未打印的票據(jù)的打印數(shù)據(jù)進行打印。
上述多種處理方式,有效提升了批量打印的可靠性,降低了人為參與因素導致的統(tǒng)計錯誤。
對應于上述方法,本發(fā)明實施例還提供了一種批量打印票據(jù)的控制裝置,該裝置可以設(shè)置在上述用戶終端中,參見圖4所示,該裝置包括以下模塊:
狀態(tài)信息接收模塊42,用于在批量打印票據(jù)的過程中,接收打印機反饋的狀態(tài)信息,其中,狀態(tài)信息包括打印機的工作信息和已打印票據(jù)的標識碼;
故障判斷模塊44,用于根據(jù)狀態(tài)信息接收模塊42接收的狀態(tài)信息中的工作信息判斷打印機是否發(fā)生故障;
故障處理模塊46,用于當故障判斷模塊44判斷的結(jié)果是打印機發(fā)生故障時,根據(jù)已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù)。
故障處理模塊46統(tǒng)計未打印的票據(jù)可以根據(jù)已打印票據(jù)的標識碼,從打印任務包含的所有票據(jù)的標識碼中統(tǒng)計未打印票據(jù)的標識碼及數(shù)量。
當打印機出現(xiàn)故障后,故障處理模塊46可以發(fā)出用于確定所述未打印票據(jù)的提示信息,也可以將未打印的票據(jù)的打印數(shù)據(jù)發(fā)送至備用打印機進行打印,或者接收到該打印機再次反饋的狀態(tài)信息,確定其正常后繼續(xù)打印等。具體處理方式可以參考上述方法實施例中的處理方式進行,這里不再贅述。
本實施例的上述裝置在批量打印票據(jù)的過程中,通過接收打印機反饋的狀態(tài)信息,并根據(jù)該狀態(tài)信息判斷出打印機是否故障,當 打印機發(fā)生故障時,能夠根據(jù)該狀態(tài)信息中已打印票據(jù)的標識碼統(tǒng)計未打印的票據(jù),進而實現(xiàn)了在批量打印多頁票據(jù)時,有效監(jiān)控每頁票據(jù)的打印狀態(tài),提升了票據(jù)的可靠打印,有效防止了丟單現(xiàn)象。
本發(fā)明實施例所提供的裝置,其實現(xiàn)原理及產(chǎn)生的技術(shù)效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應內(nèi)容。
參見圖5所示的本實施例提供的批量打印票據(jù)的控制裝置的另一種結(jié)構(gòu)框圖,在上述圖4的基礎(chǔ)上,該裝置還包括:
打印任務生成模塊52,用于生成包含多頁票據(jù)的打印任務,其中,該打印任務中的每頁票據(jù)的打印數(shù)據(jù)包含一個標識碼;
打印數(shù)據(jù)下發(fā)模塊54,用于根據(jù)每個票據(jù)的標識碼向打印機下發(fā)打印任務生成模塊52生成的打印任務的打印數(shù)據(jù)。
其中,打印數(shù)據(jù)下發(fā)模塊54與上述狀態(tài)信息接收模塊42相連,進而實現(xiàn)對上述打印機的控制。
參見圖6所示的本實施例提供的批量打印票據(jù)的控制裝置的另一種結(jié)構(gòu)框圖,在上述圖5的基礎(chǔ)上,該裝置還包括:打印正常處理模塊62,用于當故障判斷模塊44判斷的結(jié)果是打印機正常工作、且打印機反饋的狀態(tài)信息中還包括緩存打印數(shù)據(jù)的頁數(shù)時,根據(jù)緩存打印數(shù)據(jù)的頁數(shù)和打印機的緩存能力確定本次要發(fā)送的頁數(shù),按照確定的本次要發(fā)送的頁數(shù)向打印機發(fā)送打印數(shù)據(jù)。
進一步地,上述故障判斷模塊44可以包括:工作狀態(tài)字段檢查單元,用于檢查工作信息中的工作狀態(tài)字段;其中,該工作狀態(tài)字段用于標識打印機為空閑、正在打印或發(fā)生故障;故障類型判斷單元,用于當工作狀態(tài)字段檢查單元檢查出工作狀態(tài)字段標識為上述打印機發(fā)生故障時,根據(jù)工作信息中的故障信息字段確定打印機的 故障類型;其中,該故障信息字段可以用于標識打印機是否缺紙、打印機的上蓋是否開啟或打印機的打印頭是否溫度異常等。
本發(fā)明實施例還提供了一種批量打印票據(jù)的控制系統(tǒng),該系統(tǒng)包括上述控制裝置和打印機,該打印機用于接收并打印控制裝置下發(fā)的打印數(shù)據(jù),以及向控制裝置反饋狀態(tài)信息(狀態(tài)信息的內(nèi)容同上所述)。批量打印票據(jù)的控制系統(tǒng)可以簡稱為打印系統(tǒng),上述控制裝置還可以稱為打印請求裝置,上述圖4至圖6所示的控制裝置的結(jié)構(gòu)框圖僅是一種模塊劃分的實現(xiàn)方式,在具體實現(xiàn)時,還可以采用其它形式。如圖7所示的批量打印票據(jù)的控制系統(tǒng)的結(jié)構(gòu)框圖,該系統(tǒng)包括打印請求裝置70和打印機80。
其中,打印請求裝置70包括票據(jù)生成器71、票據(jù)狀態(tài)管理器72、票據(jù)發(fā)送管理器73、狀態(tài)信息分析器74和數(shù)據(jù)發(fā)送接收單元75。
票據(jù)生成器71,用于生成包含多頁票據(jù)的打印任務,其中,每頁票據(jù)設(shè)有唯一的ID號,打印任務的打印數(shù)據(jù)以頁為單位,一頁打印數(shù)據(jù)生成一頁票據(jù)。
票據(jù)狀態(tài)管理器72,用于對已打印和未打印票據(jù)進行標識管理,將由票據(jù)生成器77發(fā)送的ID號對應的票據(jù)標記為未打??;將來自狀態(tài)信息分析器74的ID號對應的票據(jù)標記為已打印。
票據(jù)發(fā)送管理器73,用于管理來自票據(jù)生成器71生成的打印數(shù)據(jù),以頁為單位形成打印數(shù)據(jù)的發(fā)送隊列,當接收到來自票據(jù)狀態(tài)管理器72的已打印票據(jù)的ID號,則從發(fā)送隊列中刪除與該ID號對應的票據(jù)的打印數(shù)據(jù),并根據(jù)來自狀態(tài)信息分析器74的打印機狀態(tài)信息決定是否向數(shù)據(jù)發(fā)送接收單元75發(fā)送打印數(shù)據(jù)。進一步,還可以根據(jù)打印機狀態(tài)信息中的未打印數(shù)據(jù)的頁數(shù),確定本次要發(fā) 送的打印數(shù)據(jù)的頁數(shù),如打印機返回的未打印數(shù)據(jù)的頁數(shù)為k,而打印機可以緩存的打印數(shù)據(jù)的頁數(shù)(相當于上述緩存能力)為j,則本次可發(fā)送的頁數(shù)最多為(j-k),把(j-k)頁打印數(shù)據(jù)發(fā)送到數(shù)據(jù)發(fā)送接收單元75。其中j和k為正整數(shù),在這里僅僅是示例性的,而不是作為限制,其他示例可以具有不同的值。
狀態(tài)信息分析器74,用于分析來自打印機的狀態(tài)信息,并把分析后的狀態(tài)信息分別傳送到不同的模塊,如把打印機的工作狀態(tài)傳送到票據(jù)發(fā)送管理器73,把已打印票據(jù)的ID號發(fā)送到票據(jù)狀態(tài)管理器72。本實施例中的打印機的狀態(tài)信息包括工作狀態(tài)字段、故障信息字段和已打印票據(jù)ID號字段,其中,工作狀態(tài)字段用于表示打印機的工作狀態(tài),如空閑、正在打印、發(fā)生故障等,故障信息字段表示打印機已發(fā)生的具體故障,故障信息字段通常為2字節(jié),每個比特表示一種故障,如比特1表示打印機是否缺紙、比特2表示上蓋是否開啟、比特3表示打印頭是否溫度異常等,已打印票據(jù)ID號字段表示打印機打印結(jié)束的票據(jù)對應的ID號;進一步地,打印機狀態(tài)信息還包括未打印數(shù)據(jù)的頁數(shù)字段,用于表示打印機接收緩沖器中保存的未打印數(shù)據(jù)的頁數(shù)。
數(shù)據(jù)發(fā)送接收單元75,用于在打印請求裝置和打印機之間進行數(shù)據(jù)傳輸,將從票據(jù)發(fā)送管理器73接收到的打印數(shù)據(jù)發(fā)送給打印機,接收來自打印機80的打印機狀態(tài)信息,并把打印機的狀態(tài)信息發(fā)送到狀態(tài)信息分析器74,數(shù)據(jù)的通信方式可以為USB通信,也可以為網(wǎng)絡(luò)通信。
打印機80包括控制單元81、通信單元82、接收緩沖器83、打印單元84和狀態(tài)檢測器85,其中,控制單元81控制各模塊的工作及模塊間的配合,如控制通信單元82接收來自打印請求裝置70的 打印數(shù)據(jù)以及發(fā)送打印機狀態(tài)信息,控制打印單元84進行打印,控制狀態(tài)檢測器85實時地和/或周期地檢測打印機各組成部分的狀況等。
通信單元82,接收來自打印請求裝置70發(fā)送的打印數(shù)據(jù)和/或狀態(tài)查詢指令,并把接收的打印數(shù)據(jù)保存在接收緩沖器83,向打印請求裝置70發(fā)送來自狀態(tài)檢測器85的狀態(tài)信息,通信單元82可以為USB接口,也可以為網(wǎng)絡(luò)接口,還可以為其他類型的通信接口;
接收緩沖器83,緩存來自數(shù)據(jù)接收發(fā)送單元82的打印數(shù)據(jù)。
打印單元84,把來自接收緩沖器83的打印數(shù)據(jù)打印在介質(zhì)上以生成票據(jù),其中,一頁打印數(shù)據(jù)生成一張票據(jù),打印單元84可以為噴墨打印單元,也可以為熱打印單元或其他類型的打印單元,當打印數(shù)據(jù)是以打印機語言表示的數(shù)據(jù)時,在發(fā)送到打印單元84之前,控制器81還對以打印機語言表示的數(shù)據(jù)進行解析,以生成適合打印單元84的數(shù)據(jù)。當打印數(shù)據(jù)是以打印機語言以外的語言表示的數(shù)據(jù)時,在發(fā)送到打印單元84之前,控制器81可以對該打印數(shù)據(jù)進行格式轉(zhuǎn)換,轉(zhuǎn)換為打印機語言后進行解析等操作。
狀態(tài)檢測器85,用于檢測打印機各組成模塊的狀態(tài),包括多個檢測單元,優(yōu)選地,狀態(tài)檢測器包括用于檢測打印單元是否溫度過高的溫度檢測單元、用于檢測打印機是否缺紙的缺紙檢測單元、用于檢測打印機是否打開上蓋的上蓋檢測單元、用于檢測當前頁的打印數(shù)據(jù)是否打印結(jié)束的票據(jù)打印檢測單元,優(yōu)選地,狀態(tài)檢測器還包括用于檢測接收緩沖器中未打印數(shù)據(jù)的頁數(shù)的接收緩存檢測單元,狀態(tài)檢測器85把每個檢測單元的檢測結(jié)果以預定的規(guī)則形成打印機的狀態(tài)信息,當任意一個檢測單元檢測到故障,控制單元81將狀態(tài)信息的故障信息字段中與該檢測單元對應的比特設(shè)置為相應 的故障狀態(tài),同時還將狀態(tài)信息中的工作狀態(tài)字段標記為發(fā)生故障;當所有檢測單元均未檢測到故障,控制單元81將狀態(tài)信息的故障信息字段中與該檢測單元對應的比特設(shè)置為相應的正常狀態(tài),同時根據(jù)打印機是否打印,將狀態(tài)信息中的工作狀態(tài)字段標記為空閑狀態(tài)或正在打印狀態(tài)。
圖8是根據(jù)本發(fā)明實施例的打印機系統(tǒng)中運行于打印請求裝置上的控制方法的流程圖,具體的處理流程如下:
步驟S10,票據(jù)生成器生成包含多頁票據(jù)的打印任務,其中,每頁票據(jù)設(shè)有唯一的ID號。
打印請求裝置70的票據(jù)生成器71根據(jù)實際應用的需要生成包含多頁票據(jù)的打印任務,其中,每頁票據(jù)設(shè)有唯一的ID號,用于票據(jù)的識別、分辨、查詢等,該打印任務包括多頁打印數(shù)據(jù),一頁打印數(shù)據(jù)打印在介質(zhì)上生成一頁票據(jù)。打印任務生成后,打印任務的打印數(shù)據(jù)輸出到票據(jù)發(fā)送管理器73,并把該打印任務包含的所有票據(jù)的ID號發(fā)送到票據(jù)狀態(tài)管理器72。
步驟S12,向打印機發(fā)送多頁打印數(shù)據(jù);
打印請求裝置70的數(shù)據(jù)接收發(fā)送器75向打印機發(fā)送多頁打印數(shù)據(jù),該多頁打印數(shù)據(jù)來自票據(jù)發(fā)送管理器73。
步驟S14,接收打印機的狀態(tài)信息;
數(shù)據(jù)發(fā)送接收器75接收來自打印機80的狀態(tài)信息,并把接收的狀態(tài)信息發(fā)送到狀態(tài)信息分析器74。
步驟S16,判定打印機是否發(fā)生故障;
狀態(tài)信息分析器74對來自打印機的狀態(tài)信息進行解析,如果工作狀態(tài)字段表示打印機正常,即打印機未發(fā)生故障,則轉(zhuǎn)到步驟S18;如果工作狀態(tài)字段表示打印機發(fā)生故障,則轉(zhuǎn)到步驟S20。
步驟S18,根據(jù)返回的票據(jù)ID號確認已打印票據(jù)。
票據(jù)狀態(tài)管理器72根據(jù)從狀態(tài)信息分析器74獲取的票據(jù)ID號把該ID號對應的票據(jù)從未打印狀態(tài)標記為打印狀態(tài),然后再把該ID號發(fā)送到票據(jù)發(fā)送管理器73。
步驟S20,統(tǒng)計未打印的票據(jù);
打印請求裝置70的票據(jù)狀態(tài)管理器72在打印任務包含的所有票據(jù)的ID號中,刪除確認為已打印的票據(jù)ID號,統(tǒng)計剩余的未打印票據(jù)的ID號及其數(shù)量。
步驟S22,對未打印票據(jù)進行處理;
對票據(jù)狀態(tài)管理器72統(tǒng)計的未打印票據(jù),可以在打印機排除故障后,由票據(jù)發(fā)送管理器73把未打印票據(jù)ID號對應的頁數(shù)據(jù)再發(fā)送到打印機進行打印,也可以通過提示信息向使用者進行報警,由使用者決定下一步的操作。
步驟S24,判定打印任務的所有票據(jù)是否都已打?。?/p>
票據(jù)狀態(tài)管理器72,根據(jù)來自票據(jù)生成器71的所有票據(jù)的ID號以及來自狀態(tài)信息分析器74的已打印票據(jù)的ID號,把該ID號對應的票據(jù)從未打印狀態(tài)標記為打印狀態(tài),如果所有ID號對應的票據(jù)均標記為打印狀態(tài),則打印任務的所有票據(jù)都已打印,否則,打印任務的所有票據(jù)未都已打??;如果未都打印,則轉(zhuǎn)到步驟S12;如果都已打印,則本流程結(jié)束。
圖9是根據(jù)本發(fā)明實施例的基于圖7所示系統(tǒng)的批量打印票據(jù)的控制方法的流程圖,如圖9所示,打印請求裝置與打印機之間通信過程的程序流程是交互進行的,圖中的箭頭表示從打印請求裝置向打印機發(fā)送數(shù)據(jù),箭頭表示從打印機向打印請求裝置發(fā)送數(shù)據(jù),其中,步驟S40至步驟S54由打印請求裝置 70執(zhí)行,步驟S70至步驟S76由打印機80執(zhí)行,具體的處理過程如下:
步驟S40,打印請求裝置生成包含多頁票據(jù)的打印任務,其中,每頁票據(jù)設(shè)有唯一ID號;
打印請求裝置70的票據(jù)生成器71生成設(shè)有多頁票據(jù)并且每頁票據(jù)設(shè)有唯一ID號的打印任務,把該打印任務發(fā)送到票據(jù)發(fā)送管理器73,并把該打印任務包含的所有票據(jù)的ID號發(fā)送到票據(jù)狀態(tài)管理器72。
步驟S42,打印請求裝置向打印機發(fā)送多頁打印數(shù)據(jù);
通過打印請求裝置70的數(shù)據(jù)發(fā)送接收器75,向打印機80發(fā)送多頁打印數(shù)據(jù),該打印數(shù)據(jù)可以為包含打印任務中所有的頁的打印數(shù)據(jù),也可以包含打印任務中部分的頁的打印數(shù)據(jù)。
步驟S70,打印機接收打印數(shù)據(jù);
打印機80通過通信單元82,接收打印請求裝置70下發(fā)的打印數(shù)據(jù),打印機80的接收緩沖器83緩存打印數(shù)據(jù)。
步驟S72,打印機對打印數(shù)據(jù)進行打??;
步驟S74,當打印完一頁打印數(shù)據(jù)后,記錄該頁打印數(shù)據(jù)對應票據(jù)的ID號;
打印機80的打印單元84對一頁打印數(shù)據(jù)進行打印,當狀態(tài)檢測器85的票據(jù)打印檢測單元檢測到打印完一頁打印數(shù)據(jù)后,則在狀態(tài)信息的已打印票據(jù)ID號字段記錄該頁打印數(shù)據(jù)對應票據(jù)的ID號。
步驟S76,打印機向打印請求裝置發(fā)送打印機的狀態(tài)信息;
打印機80的狀態(tài)檢測器85對打印機80各組成部分進行檢測,如檢測檢測上蓋是否抬起、檢測是否缺紙等,檢測方式包括周期性 方式和中斷方式,根據(jù)各檢測單元的檢測結(jié)果生成打印機的狀態(tài)信息并把狀態(tài)信息發(fā)送到打印請求裝置70。
或者,在打印機80接收到打印請求裝置70的打印機狀態(tài)信息請求指令后,返回打印機80的狀態(tài)信息,優(yōu)選地,打印機自動返回狀態(tài),返回方式可以選擇,如周期性地返回狀態(tài)信息,或在狀態(tài)信息發(fā)生變化時發(fā)送狀態(tài)信息。
步驟S44,打印請求裝置接收打印機的狀態(tài)信息;
打印請求裝置70通過數(shù)據(jù)發(fā)送接收器75接收來自打印機80的狀態(tài)信息,并把狀態(tài)信息傳送到狀態(tài)信息分析器74。
步驟S46,打印請求裝置判定打印機是否發(fā)生故障;
打印請求裝置70的狀態(tài)信息分析器74對來自打印機80的狀態(tài)信息進行分析,其中,工作狀態(tài)字段用于表示打印機空閑、打印機正常、打印機故障等狀態(tài),如果工作狀態(tài)字段表示打印機正常,即打印機未發(fā)生故障,則轉(zhuǎn)到步驟S48;如果工作狀態(tài)字段表示打印機發(fā)生故障,則轉(zhuǎn)到步驟S52。
步驟S48,打印請求裝置根據(jù)返回的票據(jù)ID號確認已打印票據(jù);
根據(jù)狀態(tài)信息中的已打印票據(jù)ID號,打印請求裝置70的票據(jù)狀態(tài)管理器72把該ID號對應的票據(jù)從未打印狀態(tài)標記為已打印狀態(tài)。
步驟S52,統(tǒng)計未打印票據(jù);具體過程同步驟S20,這里不再贅述。
步驟S54,對未打印的票據(jù)進行處理,具體過程同步驟S22,這里不再贅述。
步驟S50,判定所有票據(jù)是否都已打?。?/p>
票據(jù)狀態(tài)管理器72根據(jù)來自打印機70的已打印票據(jù)ID號,對來自票據(jù)生成器71的所有票據(jù)的ID號是否已打印進行確認,如果有至少一個ID號對應的票據(jù)未打印,即所有票據(jù)未都打印,則轉(zhuǎn)到步驟S42;如果所有ID號對應的票據(jù)都已打印,則本流程結(jié)束。
上述打印機系統(tǒng),每頁票據(jù)設(shè)有唯一ID號,打印請求裝置實時接收打印機反饋的狀態(tài)信息,當打印機未發(fā)生故障時,根據(jù)該狀態(tài)信息中的票據(jù)的ID號記錄完成打印的票據(jù),當打印機發(fā)生故障時,根據(jù)已經(jīng)記錄的票據(jù)ID統(tǒng)計未打印的票據(jù),從而保證了票據(jù)的可靠打印,有效防止了丟單現(xiàn)象。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,又例如,多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應所述以權(quán)利要求的保護范圍為準。