用於卷式發票的印刷中斷處理方法和卷式發票印刷系統與流程
2023-09-21 10:26:55

本發明涉及卷式發票印刷技術,尤其涉及一種用於卷式發票的印刷中斷處理方法和卷式發票印刷系統。
背景技術:
卷式發票,是指按捲筒式方法進行分裝的發票。卷式發票分為定長和不定長兩種,其中,定長發票的規格例如為:寬度分別為57mm、76mm、82mm三種;長度分別為127mm、152mm、177mm三種。
每一張卷式發票上印製的基本內容例如可以包括:發票名稱、發票監製章、發票聯、發票代碼、發票號碼(印刷號)、機打號碼、機器號、收款單位及其稅號、開票日期、收款員、付款單位(兩行間距)、項目、數量、單價、金額、小寫合計、大寫計、稅控碼以及印製單位等。
目前,現有的卷式發票印刷機通常利用一個預設的印刷文件進行印刷,其按照印刷文件中預設的前後順序,每印次印製一行或多行發票,這樣一印次一印次地進行印。但是,在實際印刷過程中,往往會因為紙張用盡或機器故障等原因而使得印刷中斷,當解除中斷而繼續印刷時,現有的卷式發票印刷機都需要用戶來操作並選擇從哪個印次開始印刷,這樣導致印刷效率很低,而且非常容易出錯。
技術實現要素:
在下文中給出了關於本發明的簡要概述,以便提供關於本發明的某些方面的基本理解。應當理解,這個概述並不是關於本發明的窮舉性概述。它並不是意圖確定本發明的關鍵或重要部分,也不是意圖限定本發明的範圍。其目的僅僅是以簡化的形式給出某些概念,以此作為稍後論述的更詳細描述的前序。
鑑於此,本發明提供了一種用於卷式發票的印刷中斷處理方法和卷式發票印刷系統,以至少解決現有卷式發票印刷機在印刷中斷後不能自動續印而使得印刷效率低以及容易出錯的問題。
根據本發明的一個方面,提供了一種用於卷式發票的印刷中斷處理方法,所述用於卷式發票的印刷中斷處理方法包括:利用卷式發票印刷文件進行印刷;所述卷式發票印刷文件包括n個數據組,每個數據組包括xy個發票數據單元,其中,每個發票數據單元對應一張卷式發票成品,且每卷卷式發票成品包括x張發票;每個數據組的xy個發票數據單元呈x行、y列分布設置,且每個數據組的每一列的x個發票數據單元從上至下按發票號碼從小到大的順序排列,每個數據組的第j列的發票號碼尾號與該數據組的第j+1列的發票號碼首號相連續,j=1,2,…,y-1;所述n個數據組中的第i個數據組的發票號碼尾號與該數據組中的第i+1個數據組的發票號碼首號相連續,i=1,2,…,n-1;其中,印刷的每一印次對應cy個發票數據單元,且該cy個發票數據單元呈c行、y列分布設置;所述卷式發票印刷文件中的每個數據組前設有第一跳印區,每個數據組後設有第二跳印區,其中,所述第一跳印區包括t1印次,而所述第二跳印區包括t2印次;在印刷發生中斷的情況下,獲取中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st;利用所述中斷卷首號st,根據確定續印印次序數p,其中,s0為所述卷式發票印刷文件的發票號碼首號;確定所述卷式發票印刷文件中的第p印次;在解除所述中斷後繼續印刷時,從所述卷式發票印刷文件的第p印次開始印刷。
進一步地,所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟包括:在印刷發生中斷的情況下,提示用戶輸入中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
進一步地,所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟包括:在印刷發生中斷的情況下,捕獲中斷前最後一印次發票成品的圖像;根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
進一步地,所述捕獲中斷前最後一印次發票成品的圖像的步驟包括:預先設定圖像採集區域,在發生中斷後,通過一個或多個攝像頭捕獲該圖像採集區域的圖像,作為中斷前最後一印次發票成品的圖像;其中,印刷期間每印次的發票成品在該圖像採集區域停留至少t秒。
進一步地,所述捕獲中斷前最後一印次發票成品的圖像的步驟包括:通過掃描方式獲得中斷前最後一印次發票成品的圖像。
進一步地,所述根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv確定中斷前最後一印次的最小列所在卷的發票號碼首號來作為中斷卷首號st的步驟包括:根據下式計算中斷卷首號st:
根據本發明的另一方面,還提供了一種卷式發票印刷系統,所述卷式發票印刷系統包括卷式發票印刷機單元、存儲單元和處理單元,其中所處存儲單元上存儲有多條指令,所述處理單元用於控制所述卷式發票印刷機單元進行印刷;所述多條指令適於所述處理單元加載並執行:控制所述卷式發票印刷機單元利用卷式發票印刷文件進行印刷;其中,所述卷式發票印刷文件包括n個數據組,每個數據組包括xy個發票數據單元,其中,每個發票數據單元對應一張卷式發票成品,且每卷卷式發票成品包括x張發票;每個數據組的xy個發票數據單元呈x行、y列分布設置,且每個數據組的每一列的x個發票數據單元從上至下按發票號碼從小到大的順序排列,每個數據組的第j列的發票號碼尾號與該數據組的第j+1列的發票號碼首號相連續,j=1,2,…,y-1;所述n個數據組中的第i個數據組的發票號碼尾號與該數據組中的第i+1個數據組的發票號碼首號相連續,i=1,2,…,n-1;其中,印刷的每一印次對應cy個發票數據單元,且該cy個發票數據單元呈c行、y列分布設置;所述卷式發票印刷文件中的每個數據組前設有第一跳印區,每個數據組後設有第二跳印區,其中,所述第一跳印區包括t1印次,而所述第二跳印區包括t2印次;在印刷發生中斷的情況下,獲取中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st;利用所述中斷卷首號st,根據確定續印印次序數p,其中,s0為所述卷式發票印刷文件的發票號碼首號;確定所述卷式發票印刷文件中的第p印次;在解除所述中斷後繼續印刷時,從所述卷式發票印刷文件的第p印次開始印刷。
進一步地,所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟包括:在印刷發生中斷的情況下,提示用戶輸入中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
進一步地,所述卷式發票印刷系統還包括一個或多個攝像頭;所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟包括:在印刷發生中斷的情況下,利用所述一個或多個攝像頭捕獲中斷前最後一印次發票成品的圖像;根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
進一步地,所述卷式發票印刷系統還包括掃描設備;所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟包括:在印刷發生中斷的情況下,利用所述掃描設備獲取中斷前最後一印次發票成品的圖像;根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
本實施例所採用的卷式發票的印刷方式與現有技術不同。圖2a的印刷方式,雖然分切後排序、重組容易,但需要將全部發票印刷完畢後才能使得所印製的所有發票號碼連續;圖2b和圖2c的印刷方式,雖然解決了圖2a的問題,但其在分割裁切後,分成3大列,在3大列對應位置的每一大橫排中,最小卷位置不是固定的,這樣則同樣使得分切後對各捲髮票的排序、重組存在困難,處理效率較低。相比之下,本發明的用於卷式發票的印刷中斷處理方法和卷式發票印刷系統所採用的卷式發票的印刷方式則可以解決圖2a-2c的以上問題。
然而,無論是圖2a所示的印刷方式,還是圖2b或圖2c所示的印刷方式,當發生印刷中斷時,其發票印刷機都無法自動續印。本發明所採用的卷式發票的印刷方式則可以通過獲取中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st,並根據確定續印印次序數p,在中斷解除後(如設置一個續印按鈕)從卷式發票印刷文件的第p印次開始續印,實現了自動續印,省時省力,處理效率高。
這樣,利用本發明的用於卷式發票的印刷中斷處理方法和卷式發票印刷系統,可以將幾種續印方式分別設置在不同的印刷機系統中,也可以在一個系統中設置以上多種續印方式。比如,當由於缺紙而使得印刷中斷時,當工作人員放好紙後,通過交互界面輸入一個數值(作為中斷前最後一印次的最小列所在卷的發票號碼首號),然後按下第一按鈕,系統則可以自動根據該數值計算續印的印次;或者,當工作人員放好紙後,按下第二按鈕,系統自動通過攝像頭捕獲中斷前最後一印次發票成品的圖像,從中提取到中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷卷首號st後,根據中斷卷首號st自動計算出續印的印次;再或者,當工作人員放好紙後,將中斷前最後一印次發票成品剪裁下來,將其放入掃描儀中,再按下第三按鈕,系統自動通過掃描儀捕獲中斷前最後一印次發票成品的圖像,從中提取到中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷卷首號st後,根據中斷卷首號st自動計算出續印的印次。
通過以下結合附圖對本發明的最佳實施例的詳細說明,本發明的這些以及其他優點將更加明顯。
附圖說明
本發明可以通過參考下文中結合附圖所給出的描述而得到更好的理解,其中在所有附圖中使用了相同或相似的附圖標記來表示相同或者相似的部件。所述附圖連同下面的詳細說明一起包含在本說明書中並且形成本說明書的一部分,而且用來進一步舉例說明本發明的優選實施例和解釋本發明的原理和優點。在附圖中:
圖1是示出本發明的用於卷式發票的印刷中斷處理方法的一個示例性處理的流程圖;
圖2a-2c是示出現有卷式發票印刷方式所印製發票的三種例子的示意圖;
圖3和圖4是示出採用本發明的卷式發票印刷文件所印製發票的兩個例子的示意圖;
圖5是示出採用本發明的卷式發票印刷文件進行印刷時發生中斷時的示意圖。
本領域技術人員應當理解,附圖中的元件僅僅是為了簡單和清楚起見而示出的,而且不一定是按比例繪製的。例如,附圖中某些元件的尺寸可能相對於其他元件放大了,以便有助於提高對本發明實施例的理解。
具體實施方式
在下文中將結合附圖對本發明的示範性實施例進行描述。為了清楚和簡明起見,在說明書中並未描述實際實施方式的所有特徵。然而,應該了解,在開發任何這種實際實施例的過程中必須做出很多特定於實施方式的決定,以便實現開發人員的具體目標,例如,符合與系統及業務相關的那些限制條件,並且這些限制條件可能會隨著實施方式的不同而有所改變。此外,還應該了解,雖然開發工作有可能是非常複雜和費時的,但對得益於本公開內容的本領域技術人員來說,這種開發工作僅僅是例行的任務。
在此,還需要說明的一點是,為了避免因不必要的細節而模糊了本發明,在附圖中僅僅示出了與根據本發明的方案密切相關的裝置結構和/或處理步驟,而省略了與本發明關係不大的其他細節。
本發明的實施例提供了一種用於卷式發票的印刷中斷處理方法,所述用於卷式發票的印刷中斷處理方法包括:利用卷式發票印刷文件進行印刷;所述卷式發票印刷文件包括n個數據組,每個數據組包括xy個發票數據單元,其中,每個發票數據單元對應一張卷式發票成品,且每卷卷式發票成品包括x張發票;每個數據組的xy個發票數據單元呈x行、y列分布設置,且每個數據組的每一列的x個發票數據單元從上至下按發票號碼從小到大的順序排列,每個數據組的第j列的發票號碼尾號與該數據組的第j+1列的發票號碼首號相連續,j=1,2,…,y-1;所述n個數據組中的第i個數據組的發票號碼尾號與該數據組中的第i+1個數據組的發票號碼首號相連續,i=1,2,…,n-1;其中,印刷的每一印次對應cy個發票數據單元,且該cy個發票數據單元呈c行、y列分布設置;所述卷式發票印刷文件中的每個數據組前設有第一跳印區,每個數據組後設有第二跳印區,其中,所述第一跳印區包括t1印次,而所述第二跳印區包括t2印次;在印刷發生中斷的情況下,提示用戶輸入中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st;利用用戶輸入的中斷卷首號st,根據確定續印印次序數p,其中,s0為所述卷式發票印刷文件的發票號碼首號;確定所述卷式發票印刷文件中的第p印次;在解除所述中斷後繼續印刷時,從所述卷式發票印刷文件的第p印次開始印刷。
圖1給出了本發明的用於卷式發票的印刷中斷處理方法的一個示例處理。
如圖1所示,在本實施例中,首先在步驟s110中利用卷式發票印刷文件進行印刷。
其中,卷式發票印刷文件包括n個數據組,n為正整數,例如n可以為10、50、100或1000等。
n個數據組中的每個數據組包括xy個發票數據單元,其中,每個發票數據單元對應一張卷式發票成品,且每卷卷式發票成品包括x張發票。x為正整數,例如可以為50或100等。y為正整數,例如可以為2、3、4或5等。
每個數據組的xy個發票數據單元呈x行、y列分布設置,且每個數據組的每一列的x個發票數據單元從上至下按發票號碼從小到大的順序排列,每個數據組的第j列的發票號碼尾號與該數據組的第j+1列的發票號碼首號相連續,j=1,2,…,y-1。
n個數據組中的第i個數據組的發票號碼尾號與該數據組中的第i+1個數據組的發票號碼首號相連續,i=1,2,…,n-1。
其中,印刷的每一印次對應cy個發票數據單元,且該cy個發票數據單元呈c行、y列分布設置。c為正整數,例如可以為1、2、3或4等。
卷式發票印刷文件中的每個數據組前設有第一跳印區,每個數據組後設有第二跳印區,其中,第一跳印區包括t1印次,而第二跳印區包括t2印次。t1、t2均為正整數。例如,t1、t2可均為1,這樣,在相鄰的每兩個數據組之間相隔2印次。
圖2a給出了現有卷式發票印刷方式所印製發票的一個例子。如圖2a所示,在現有技術中,假設共有3n×100張發票需要印製,起止號分別為1和3n×100,則其將其分為多列,如圖2中的3列,每列中的發票號碼從上至下是連續的、且是從小到大遞增的。
圖2b和圖2c給出了現有卷式發票印刷方式所印製發票的另外兩個例子(參見申請號為201510882494.5、申請日為2015年12月03日的發明專利「一種用於卷式發票的印刷方法」)。
在圖2b所示的例子中,按卷號順序來看,第1卷(1-50)位於第一大橫排中間,第2卷(51-100)位於第一大橫排左側,第3卷(101-150)位於第一大橫排右側,第4卷(151-200)位於第二大橫排中間,第5卷(201-250)位於第二大橫排左側,第6卷(251-300)位於第二大橫排右側,依此類推,可以看出,其每一大橫排最小卷的首號可能在中間,可能在左邊,也可能在右邊。
在圖2c所示的例子中,按卷號順序來看,第1卷(1-50)位於第一大橫排右側,第2卷(51-100)位於第一大橫排中間,第3卷(101-150)位於第一大橫排左側,第4卷(151-200)位於第二大橫排左側,第5卷(201-250)位於第二大橫排中間,第6卷(251-300)位於第二大橫排右側,依此類推,可以看出,其每一大橫排最小卷的首號可能在中間,可能在左邊,也可能在右邊。
圖3和圖4給出了利用本發明的卷式發票印刷文件所印製的兩種發票樣本。其中,圖3的每一個數據組中,從左到右的發票號碼依次變大,即最小卷的首號在最左;而在圖4中則相反,即每一個數據組中最小卷的首號在最右。
以圖3為例,第1數據組中包括xy個發票數據單元,其中,x=100,而y=4,也就是說,在第1數據組中,1-100號發票為第一卷,101-200號發票為第二卷,依此類推,每一卷的尾號和下一卷的首號連續。其中,每一印次包括2行。在圖3所示的例子中,第一跳印區包括1印次,而第二跳印區也包括1印次。需要說明的是,在其他例子中,第一跳印區和第二跳印區也可以包括不同印數。這樣,在每相鄰兩個數據組之間,相隔2個印次。
這樣,由圖3和圖4可以看出,本實施例所採用的卷式發票的印刷方式與現有技術不同。圖2a的印刷方式,雖然分切後排序、重組容易,但需要將全部發票印刷完畢後才能使得所印製的所有發票號碼連續;圖2b和圖2c的印刷方式,雖然解決了圖2a的問題,但其在分割裁切後,分成3大列,在3大列對應位置的每一大橫排中,最小卷位置不是固定的,這樣則同樣使得分切後對各捲髮票的排序、重組存在困難,處理效率較低。相比之下,本發明的所採用的卷式發票的印刷方式則可以解決圖2a-2c的問題。
然而,無論是圖2a所示的印刷方式,還是圖2b或圖2c所示的印刷方式,當發生印刷中斷時,其發票印刷機都無法自動續印。本發明所採用的卷式發票的印刷方式則可以通過接下來描述的處理步驟來解決該問題。
如圖1所示,在步驟s120中,在印刷發生中斷的情況下,獲取中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
如圖5所示,在一個例子中,例如在印完79255、79355、79455、79555這一行發票後中斷了,這種情況下,例如可以提示用戶輸入中斷前最後一印次的最小列所在卷的發票號碼首號來作為中斷卷首號st。
例如,在一個實現方式中,也可以在印刷發生中斷的情況下,通過攝像頭捕獲中斷前最後一印次發票成品的圖像,然後根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。例如,預先設定圖像採集區域,在發生中斷後,通過一個或多個攝像頭捕獲該圖像採集區域的圖像,作為中斷前最後一印次發票成品的圖像;其中,印刷期間每印次的發票成品在該圖像採集區域停留至少t秒。其中,t例如等於0.1或0.5等。
其中,「根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號」例如可以根據公式一實現。
公式一:
也就是說,將sv除以100後取整數,作為m,再用m乘以100後得到的數加1,結果作為中斷卷首號st。
此外,在另一個實現方式中,在印刷發生中斷的情況下,也可以利用掃描儀等掃描設備來獲取中斷前最後一印次發票成品的圖像。比如,發生中斷後,待用戶解決完中斷原因,需要繼續印刷時,將中斷前最後一印次發票成品剪下,將其放入掃描設備中,其中掃描設備是與計算機相連接的,計算機作為控制印刷機的處理單元,這樣,通過掃描設備掃描中斷前最後一印次發票成品,獲得其圖像,進而能夠「根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號」。
接著,在步驟s130中,利用用戶輸入的中斷卷首號st,根據公式二來確定續印印次序數p,其中,s0為卷式發票印刷文件的發票號碼首號。
公式二:
接著,在步驟s140中,確定卷式發票印刷文件中的第p印次。
這樣,在步驟s150中,在解除中斷後繼續印刷時,從卷式發票印刷文件的第p印次開始印刷。
此外,本發明的實施例還提供了一種卷式發票印刷系統,所述卷式發票印刷系統包括卷式發票印刷機單元、存儲單元和處理單元,其中所處存儲單元上存儲有多條指令,所述處理單元用於控制所述卷式發票印刷機單元進行印刷;所述多條指令適於所述處理單元加載並執行:控制所述卷式發票印刷機單元利用卷式發票印刷文件進行印刷;其中,所述卷式發票印刷文件包括n個數據組,每個數據組包括xy個發票數據單元,其中,每個發票數據單元對應一張卷式發票成品,且每卷卷式發票成品包括x張發票;每個數據組的xy個發票數據單元呈x行、y列分布設置,且每個數據組的每一列的x個發票數據單元從上至下按發票號碼從小到大的順序排列,每個數據組的第j列的發票號碼尾號與該數據組的第j+1列的發票號碼首號相連續,j=1,2,…,y-1;所述n個數據組中的第i個數據組的發票號碼尾號與該數據組中的第i+1個數據組的發票號碼首號相連續,i=1,2,…,n-1;其中,印刷的每一印次對應cy個發票數據單元,且該cy個發票數據單元呈c行、y列分布設置;所述卷式發票印刷文件中的每個數據組前設有第一跳印區,每個數據組後設有第二跳印區,其中,所述第一跳印區包括t1印次,而所述第二跳印區包括t2印次;在印刷發生中斷的情況下,獲取中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st;利用所述中斷卷首號st,根據確定續印印次序數p,其中,s0為所述卷式發票印刷文件的發票號碼首號;確定所述卷式發票印刷文件中的第p印次;在解除所述中斷後繼續印刷時,從所述卷式發票印刷文件的第p印次開始印刷。
所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟例如包括:在印刷發生中斷的情況下,提示用戶輸入中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
根據一個實現方式,所述卷式發票印刷系統還包括一個或多個攝像頭;所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟例如包括:在印刷發生中斷的情況下,利用所述一個或多個攝像頭捕獲中斷前最後一印次發票成品的圖像;根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
根據另一實現方式,所述卷式發票印刷系統還包括掃描設備;所述在印刷發生中斷的情況下獲取中斷前最後一印次的最小列所在卷的發票號碼首號的步驟例如包括:在印刷發生中斷的情況下,利用所述掃描設備獲取中斷前最後一印次發票成品的圖像;根據所述中斷前最後一印次發票成品的圖像中任一單張發票成品的發票號碼sv,確定中斷前最後一印次的最小列所在卷的發票號碼首號,作為中斷卷首號st。
儘管根據有限數量的實施例描述了本發明,但是受益於上面的描述,本技術領域內的技術人員明白,在由此描述的本發明的範圍內,可以設想其它實施例。此外,應當注意,本說明書中使用的語言主要是為了可讀性和教導的目的而選擇的,而不是為了解釋或者限定本發明的主題而選擇的。因此,在不偏離所附權利要求書的範圍和精神的情況下,對於本技術領域的普通技術人員來說許多修改和變更都是顯而易見的。對於本發明的範圍,對本發明所做的公開是說明性的,而非限制性的,本發明的範圍由所附權利要求書限定。