一種將零售業(yè)pos機(jī)打印信號(hào)還原成圖形文件的方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其是涉及一種將零售業(yè)P0S機(jī)打印信號(hào)還原成圖 形文件的方法。
【背景技術(shù)】
[0002] "大數(shù)據(jù)"作為時(shí)下最火熱的的詞匯,在各個(gè)行業(yè)都有大量的應(yīng)用。隨之而來(lái)的數(shù) 據(jù)倉(cāng)庫(kù)、數(shù)據(jù)安全、數(shù)據(jù)分析、數(shù)據(jù)挖掘等等圍繞大數(shù)據(jù)的商業(yè)價(jià)值的利用逐漸成為行業(yè)人 士爭(zhēng)相追捧的利潤(rùn)焦點(diǎn)。"大數(shù)據(jù)"非常重要的基礎(chǔ)就是可靠的數(shù)據(jù)來(lái)源,即原始數(shù)據(jù)的采 集。
[0003] 在線上的零售服務(wù)行業(yè),所有的消費(fèi)數(shù)據(jù)都由服務(wù)器進(jìn)行存儲(chǔ),以供日后進(jìn)行分 析。然而在線下的零售服務(wù)行業(yè),銷(xiāo)售數(shù)據(jù),如銷(xiāo)售的金額,銷(xiāo)售的單品,類(lèi)別等等一般都保 存在零售商的P0S(計(jì)算機(jī))系統(tǒng)里。要讓這些數(shù)據(jù)供P0S的外部的應(yīng)用,如:營(yíng)銷(xiāo)活動(dòng),會(huì) 員系統(tǒng)等等,則需要復(fù)雜的系統(tǒng)對(duì)接,且存在有潛在的風(fēng)險(xiǎn)隱患,如:來(lái)自外部的數(shù)據(jù)盜取, 篡改等。所以目前線下的消費(fèi)數(shù)據(jù),尤其是現(xiàn)金銷(xiāo)售,尚不能進(jìn)行統(tǒng)一的匯總與精確的分 析。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明的目的就是從P0S的外部,即從打印數(shù)據(jù)入手,將零售業(yè)P0S機(jī)打印信號(hào)還 原成圖形文件,并進(jìn)行分析,達(dá)到減少P0S機(jī)系統(tǒng)的風(fēng)險(xiǎn)隱患。
[0005]-種將零售業(yè)P0S機(jī)打印信號(hào)還原成圖形文件的方法,其特征在于,包括以下步 驟:
[0006] 101、將裝有應(yīng)用程序的有數(shù)據(jù)處理與存儲(chǔ)功能的計(jì)算設(shè)備與商家P0S機(jī)的打印 輸出口連接;
[0007]102、計(jì)算設(shè)備獲取商家P0S機(jī)向打印機(jī)輸出的打印信號(hào),該打印信號(hào)中包括打印 機(jī)控制指令、圖形打印指令、N個(gè)子圖形拼接成完整圖形的方式;
[0008] 103、計(jì)算設(shè)備塊查找自帶數(shù)據(jù)庫(kù)中的打印控制指令集字符,并和獲取的打印信 號(hào)進(jìn)行字符比對(duì),從中過(guò)濾刪除掉出現(xiàn)在這個(gè)打印信號(hào)中的打印機(jī)控制指令,保留圖形打 印指令和N個(gè)子圖形拼接成完整圖形的方式;
[0009] 104、計(jì)算設(shè)備對(duì)圖形打印指令進(jìn)行識(shí)別,單個(gè)子圖打印指令是一個(gè)描述,即給出 二維平面中橫縱坐標(biāo)為(X,Y)的某個(gè)位置是否打??;
[0010] 105、計(jì)算設(shè)備將相應(yīng)坐標(biāo)是否打印保存形成點(diǎn)陣數(shù)據(jù),如果該位置打印,則該位 置的值為1 ;如果該位置不打印,則該位置的值為〇 ;
[0011] 106、計(jì)算設(shè)備對(duì)N個(gè)子圖重復(fù)步驟105,形成N個(gè)子圖的圖形文件;
[0012] 107、計(jì)算設(shè)備利用N個(gè)子圖形拼接成完整圖形的方式把N個(gè)子圖拼接成一個(gè)完整 的大圖;
[0013] 108、計(jì)算設(shè)備將大圖加上位圖圖像頭信息,具體包括文件尺寸、大小與解析度,即 可生成最終的圖形文件。
[0014]所述的步驟107包括以下步驟:
[0015] 201、計(jì)算設(shè)備獲取打印信號(hào)中N個(gè)子圖形拼接成完整圖形的方式;
[0016] 202、若拼接方式為同一坐標(biāo)區(qū)域內(nèi),反復(fù)打印兩次,則把兩次打印的子圖文件在 同一坐標(biāo)位置做'位或'運(yùn)算,生成最后的完整大圖;
[0017] 203、若拼接方式為子圖后有換行符,則設(shè)置換行符后的子圖的左上角位置為:橫 坐標(biāo):換行符前的子圖的左上角橫坐標(biāo),縱坐標(biāo):換行符前的子圖左下角的縱坐標(biāo)+1 ;
[0018] 204、若無(wú)任何拼接標(biāo)識(shí),則默認(rèn)在子圖下垂直繼續(xù)打印。
[0019] 具體的,本發(fā)明中所述的計(jì)算設(shè)備可采用現(xiàn)有技術(shù)中的公知方案,有關(guān)上述公知 技術(shù)方案,本領(lǐng)域的技術(shù)人員均已了解,在此不再贅述。
[0020] 本發(fā)明的效果是積極明顯的:本發(fā)明從P0S的外部,即打印數(shù)據(jù)入手,無(wú)需和P0S 系統(tǒng)進(jìn)行復(fù)雜的技術(shù)對(duì)接,同時(shí)也杜絕了系統(tǒng)向P0S侵入的隱患,因?yàn)榇蛴≥敵鰰r(shí)數(shù)據(jù)流 是單向的,只能是P0S向打印機(jī)輸出,打印機(jī)無(wú)法通過(guò)打印端口向P0S寫(xiě)入數(shù)據(jù)。
【附圖說(shuō)明】
[0021 ] 圖1為本發(fā)明的方法流程圖1。
[0022] 圖2為本發(fā)明的方法流程圖2。
[0023] 圖3為8點(diǎn)單密度打印示意圖。
[0024] 圖4為24點(diǎn)單密度打印示意圖。
【具體實(shí)施方式】
[0025] 下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。
[0026] 實(shí)施例1
[0027] 如圖1所示,一種將零售業(yè)P0S機(jī)打印信號(hào)還原成圖形文件的方法,其特征在于, 包括以下步驟:
[0028] 101、將裝有應(yīng)用程序的有數(shù)據(jù)處理與存儲(chǔ)功能的計(jì)算設(shè)備與商家P0S機(jī)的打印 輸出口連接;
[0029] 102、計(jì)算設(shè)備獲取獲取商家P0S機(jī)向打印機(jī)輸出的打印信號(hào),該打印信號(hào)中包括 打印機(jī)控制指令、圖形打印指令、2個(gè)子圖形拼接成完整圖形的方式;
[0030] 103、計(jì)算設(shè)備塊查找自帶數(shù)據(jù)庫(kù)中的打印控制指令集字符,并和獲取的打印信號(hào) 進(jìn)行字符比對(duì),從中過(guò)濾刪除掉出現(xiàn)在這個(gè)打印信號(hào)中的打印機(jī)控制指令字符,剩下圖形 打印指令和2個(gè)子圖形拼接成完整圖形的方式;
[0031] 104、計(jì)算設(shè)備對(duì)圖形打印指令進(jìn)行識(shí)別,單個(gè)子圖打印指令是一個(gè)描述,即給出 二維平面中橫縱坐標(biāo)為(X,Y)的某個(gè)位置是否打印。
[0032] 打印機(jī)輸出的圖形打印指令為1B,2A,m,nL,nH,山...dk。則計(jì)算設(shè)備按如下方法 解析該打印指令:
[0033]
[0034] 105、計(jì)算設(shè)備將相應(yīng)坐標(biāo)是否打印保存形成點(diǎn)陣數(shù)據(jù),如果該位置打印,則該位 置的值為1 ;如果該位置不打印,則該位置的值為〇 ;
[0035] 在本實(shí)施例中,子圖1形打印指令為川,2六,0,3,0,(^81,(^42,(^24,則如圖3所 示,計(jì)算設(shè)備生成的二維點(diǎn)陣數(shù)據(jù)為:
[0036] 100
[0037] 100
[0038] 100
[0039] 010
[0040] 010
[0041] 010
[0042] 001
[0043] 001
[0044] 001
[0045] 000
[0046] 〇〇〇
[0047] 〇〇〇
[0048] 〇〇〇
[0049] 〇〇〇
[0050] 000
[0051] 001
[0052] 001
[0053] 001
[0054] 010
[0055] 010
[0056] 010
[0057] 100
[0058] 100
[0059] 100
[0060] 106、計(jì)算設(shè)備對(duì)2個(gè)子圖重復(fù)步驟105,形成2個(gè)子圖的圖形文件;
[0061] 子圖2形打印指令為1B,2A,0, 3,0,0x81,0x42,0x24,則如圖3所示,計(jì)算設(shè)備生成 的二維點(diǎn)陣數(shù)據(jù)為:
[0062] 100
[0063] 100
[0064]100
[0065] 010
[0066] 010
[0067] 010
[0068] 001
[0069] 001
[0070] 001
[0071] 000
[0072] 000
[0073] 000
[0074] 000
[0075] 000
[0076] 000
[0077] 001
[0078] 001
[0079] 001
[0080] 010
[0081] 010
[0082] 010
[0083] 100
[0084] 100
[0085] 100
[0086] 107、計(jì)算設(shè)備利用2個(gè)子圖形拼接成完整圖形的方式把2個(gè)子圖拼接成一個(gè)完整 的大圖;
[0087] 108、計(jì)算設(shè)備將大圖加上位圖圖像頭信息,具體包括文件尺寸、大小與解析度,即 可生成最終的圖形文件。
[0088] 如圖2所示,所述的步驟107包括以下步驟:
[0089] 201、計(jì)算設(shè)備獲取打印信號(hào)中N個(gè)子圖形拼接成完整圖形的方式;
[0090] 202、若拼接方式為同一坐標(biāo)區(qū)域內(nèi),反復(fù)打印兩次,則把兩次打印的子圖文件在 同一坐標(biāo)位置做'位或'運(yùn)算,生成最后的完整大圖;
[0091] 203、若拼接方式為子圖后有換行符,則設(shè)置換行符后的子圖的左上角位置為:橫 坐標(biāo):換行符前的子圖的左上角橫坐標(biāo),縱坐標(biāo):換行符前的子圖左下角的縱坐標(biāo)+1 ;
[0092] 204、若無(wú)任何拼接標(biāo)識(shí),則默認(rèn)在子圖后水平繼續(xù)打印。
[0093] 本實(shí)施例中子圖后有換行符,一個(gè)完整大圖的二維點(diǎn)陣數(shù)據(jù)為:
[0094] 100
[0095] 100
[0096] 100
[0097] 010
[0098] 010
[0099] 010
[0100]001[0101]001 [0102]001
[0103] 000
[0104] 000
[0105] 000
[0106] 000
[0107] 000
[0108] 000
[0109] 001
[0110] 001
[0111]001
[0112]010
[0113] 010
[0114] 010
[0115] 100
[0116] 100
[0117] 100
[0118