亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        B/S下一種基于圖片生成的條碼打印方法

        2014-07-18 06:16:44肖朋林周國祥
        關(guān)鍵詞:條碼插件打印機(jī)

        肖朋林, 周國祥, 石 雷

        (合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,安徽 合肥 230009)

        B/S下一種基于圖片生成的條碼打印方法

        肖朋林, 周國祥, 石 雷

        (合肥工業(yè)大學(xué) 計算機(jī)與信息學(xué)院,安徽 合肥 230009)

        不同品牌的條碼打印機(jī)打印條碼的方式不盡相同,使得B/S架構(gòu)下的條碼打印一直是一個難以統(tǒng)一的復(fù)雜問題。文章分析了現(xiàn)行B/S架構(gòu)下的條碼打印方法的不足之處,針對具體品牌打印機(jī)開發(fā)相應(yīng)的ActiveX插件實現(xiàn)條碼打印,通過對條碼的圖片生成規(guī)則的介紹,探討了一種可以有效避免打印機(jī)差異的 “即時條圖”法,實現(xiàn)條碼打印的統(tǒng)一和簡化,該方法已在實際檢測管理系統(tǒng)中得到應(yīng)用,效果良好。

        管理信息系統(tǒng);B/S架構(gòu);ActiveX插件;條碼;條碼圖片

        0 引 言

        隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展和網(wǎng)絡(luò)傳輸速率的提高,以C/S(Client/Server)模式為主的管理信息系統(tǒng)正朝著以B/S(Browser/Server)模式為主的方向發(fā)展[1]。B/S模式下的管理信息系統(tǒng)的最大優(yōu)點是:用戶僅需要通過瀏覽器便可以訪問和使用系統(tǒng)的功能,而這些功能的實現(xiàn)是在服務(wù)器端完成的,對瀏覽器客戶端的要求相對較低。因此用戶可以在任何地方通過一臺可以上網(wǎng)的電腦便可以訪問和使用系統(tǒng)的功能,而不需要安裝任何其他的軟件。

        但是,瀏覽器本身的特性[2]決定了在基于B/S架構(gòu)的系統(tǒng)中,條碼打?。?]是一個比較麻煩而又很難統(tǒng)一的功能;因為各種條碼打印機(jī)的條碼打印方式和驅(qū)動不是完全相同的,所以系統(tǒng)需要提供多種針對性的條碼打印功能。例如,當(dāng)前主流的方法是利用ActiveX插件[4]來實現(xiàn)客戶端條碼打印。此方法通過開發(fā)出針對具體條碼打印機(jī)的ActiveX插件并嵌入到功能頁中,客戶首次瀏覽功能頁時下載安裝適合自己打印機(jī)的ActiveX插件,通過此ActiveX插件來驅(qū)動打印機(jī)實現(xiàn)條碼打印功能。

        利用ActiveX插件的打印方法需要在系統(tǒng)開發(fā)時開發(fā)多個針對性的ActiveX插件,這不僅增加了系統(tǒng)開發(fā)的工作量和復(fù)雜程度,同時系統(tǒng)的可擴(kuò)展性也受到了限制;如果屏蔽掉這些差異,將極大地提高含有條碼打印功能的B/S架構(gòu)系統(tǒng)的開發(fā)效率與可擴(kuò)展性,并降低系統(tǒng)開發(fā)的復(fù)雜程度。

        本文結(jié)合某省黃金珠寶檢測管理系統(tǒng),探討了一種B/S架構(gòu)下無差異的條碼打印方法:“即時條圖”法。

        1 系統(tǒng)建設(shè)需求

        某省黃金珠寶檢測管理中心經(jīng)過幾年的信息化建設(shè),已經(jīng)構(gòu)成了基于核心數(shù)據(jù)庫和3層架構(gòu)的綜合信息系統(tǒng)平臺。3層架構(gòu)[5]是指表示層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。

        (1)數(shù)據(jù)訪問層主要實現(xiàn)了檢測信息的交換與共享。

        (2)業(yè)務(wù)邏輯層主要由3個應(yīng)用支撐組件組成,分別是業(yè)務(wù)應(yīng)用邏輯、系統(tǒng)管理應(yīng)用邏輯、組合查詢應(yīng)用邏輯。

        (3)表示層主要用來支持客戶送樣檢測、結(jié)果打印、消費者查詢等主要功能??蛻羲蜆又饕菍⒖蛻羲蜋z的樣品進(jìn)行數(shù)據(jù)采集;結(jié)果打印是指客戶通過系統(tǒng)打印檢測結(jié)果;消費者查詢是指消費者在買到經(jīng)過檢測的產(chǎn)品后,可以通過互聯(lián)網(wǎng)來查詢產(chǎn)品的詳細(xì)檢測信息。

        該平臺采用CSharp+VS.Net+SQL Server開發(fā),整體架構(gòu)如圖1所示。

        圖1 某省黃金珠寶檢測管理平臺邏輯架構(gòu)圖

        結(jié)果打印包含標(biāo)簽打印和檢測證書打印,這2種打印都需要打印條碼。然而,由于用戶使用的打印機(jī)品牌和型號各不相同,造成了系統(tǒng)打印功能的開發(fā)設(shè)計比較復(fù)雜和困難。因此,設(shè)計一種屏蔽打印機(jī)差異的條碼打印方法是一項必要且有意義的研究工作。

        證書打印界面如圖2所示。

        2 條碼及其編碼規(guī)則

        條形碼[6],亦即條碼barcode,是將寬度不等的多個黑條和空白,按照一定的編碼規(guī)則進(jìn)行排列,用以表達(dá)一組信息的圖形標(biāo)識符。常見的條形碼是由反射率相差很大的黑條(簡稱條)和白條(簡稱空)排成的平行線圖案。

        條形碼的組成(亦即符號)結(jié)構(gòu)次序依次為:前空白區(qū)(靜區(qū))、起始符、數(shù)據(jù)符、中間分隔符(EAN/UPC 碼 )、校 驗 符、終 止 符、尾 空 白區(qū)(靜區(qū))。

        條碼的符號結(jié)構(gòu)如圖3所示。

        圖3 條碼符號結(jié)構(gòu)

        條碼的編碼規(guī)則[7]稱為碼制。例如,一維條碼根據(jù)具體的碼制可以編碼成一串固定或可變長度的0/1代碼。1個0和1分別對應(yīng)條碼1個單位寬度的白條和黑條。某省黃金珠寶檢測管理系統(tǒng)的條碼采用CODE 128C碼制[8]。

        3 ActiveX插件打印方式及其不足

        ActiveX[9]是微軟提出的一些軟件組件或?qū)ο螅鞘褂媒M件對象模型(Component Object Model,簡稱COM)使得軟件部件在網(wǎng)絡(luò)環(huán)境中進(jìn)行交互的技術(shù)集,它與具體的編程語言無關(guān)。ActiveX是一種針對Internet應(yīng)用開發(fā)的技術(shù),目前被廣泛應(yīng)用于Web服務(wù)器以及客戶端上。

        目前,主流的客戶端條碼打印技術(shù)[10]就是將ActiveX插件嵌入到瀏覽器中來驅(qū)動客戶端打印機(jī)打印條碼。

        該技術(shù)的主要流程是:利用打印機(jī)廠商提供的帶有驅(qū)動打印機(jī)接口的動態(tài)鏈接庫(dynamic link library,簡稱DLL)開發(fā)出一個針對特定打印機(jī)的ActiveX插件并將其嵌入到網(wǎng)頁中,當(dāng)客戶首次瀏覽使用此功能網(wǎng)頁時提示用戶下載安裝,然后通過客戶端腳本調(diào)用ActiveX插件,并最終驅(qū)動打印機(jī)進(jìn)行條碼及其他內(nèi)容的打印。

        利用ActiveX插件打印的流程圖如圖4所示。

        圖4 ActiveX插件打印流程圖

        這種方式雖然能完成打印功能,并且也得到了廣泛的應(yīng)用,但其存在如下幾個方面的缺點。

        (1)開發(fā)的依賴性。ActiveX插件是在打印機(jī)廠商提供的帶有驅(qū)動打印機(jī)接口的動態(tài)鏈接庫(DLL)基礎(chǔ)上開發(fā)[11]的,若廠家不提供 DLL文件,就不能開發(fā)具體的ActiveX插件來驅(qū)動打印機(jī),這種方法也就失效了。

        (2)不具有通用性與可擴(kuò)展性。ActiveX插件的開發(fā)往往是針對某一種品牌的打印機(jī),只能驅(qū)動此種品牌的打印機(jī)。如果系統(tǒng)面對多種不同類型的打印機(jī),開發(fā)人員就需要開發(fā)多個不同的ActiveX插件,增加了系統(tǒng)開發(fā)的工作量。

        (3)無用加載,影響速度。當(dāng)面對多種不同類型的打印機(jī)時,為了保證用戶的正常使用,必須將所有的ActiveX都嵌入到網(wǎng)頁中。而客戶真正用到的僅有一個,這就造成了許多無用的加載,也降低了系統(tǒng)的運行速度。

        從以上ActiveX插件打印方式的不足之處,可以看出若B/S架構(gòu)下的系統(tǒng)中客戶端打印機(jī)的品牌過多,利用這種方法將很難實現(xiàn)。為此,針對某省黃金珠寶檢測管理系統(tǒng)中的具體困難,本文所介紹的“即時條圖”法將有效地解決這個問題。

        4 “即時條圖”法的研究與實現(xiàn)

        4.1 方法研究

        “即時條圖”法,就是生成即時的條碼圖片,將條碼以圖片的形式傳給打印機(jī)(打印機(jī)對圖片的打印方式是相同的),從而屏蔽不同條碼打印機(jī)的不同條碼打印方式。采用“即時條圖”法的流程圖如圖5所示。

        圖5 “即時條圖”法實現(xiàn)流程圖

        這里連接請求的建立是客戶端通過與服務(wù)器建立Socket連接,將條碼數(shù)據(jù)傳給服務(wù)器的請求條碼圖片的過程。之后有2個問題需要解決,一是條碼圖片如何生成;二是客戶端如何即時獲取這個生成的圖片。

        4.2 條碼圖片生成

        不同條碼的條碼圖片生成[12]的方式基本一樣,就是將數(shù)據(jù)按照具體碼制的編碼表轉(zhuǎn)換成0/1代碼串;然后繪制條碼圖片,繪圖過程中1代表1個單位的黑條,0代表1個單位的白條。例如,由上文介紹可知數(shù)據(jù)01的CODE 128C的0/1代碼串是“110 100 111 001 100 110 110 010 010 011 000 110 001 110 1011”。得到了代碼串之后就可以根據(jù)設(shè)定的寬度計算單位條寬,然后按照1畫黑條、0畫白條的原則,利用Visual C#.Net提供的圖片生成接口(GUI+)[13]生成條碼圖片。數(shù)據(jù)的條碼圖片生成流程圖如圖6所示。

        按照此生成過程,數(shù)據(jù)01的CODE 128C的條碼圖片如圖7所示。

        主要代碼如下:

        圖6 數(shù)據(jù)的條碼圖片生成流程圖

        圖7 數(shù)據(jù)01的CODE 128C的條碼圖片

        4.3 客戶端即時獲取圖片

        當(dāng)前很多的報表軟件都提供了動態(tài)截取網(wǎng)絡(luò)圖片的功能,利用此功能便可以即時地獲取服務(wù)器生成的條碼圖片。例如,使用水晶報表(Crystal Reports)時的具體實現(xiàn)方法是:在服務(wù)器端添加Code128Handler.ashx文件用來生成請求數(shù)據(jù)的CODE 128C條碼圖片,而水晶報表只需要通 過 “http://ServerIP/Code128Handler.ashx?code=條碼數(shù)據(jù)”這一公式就可以獲取此數(shù)據(jù)的條碼圖片了。在條碼圖片生成過程之后,服務(wù)器端將生成條碼圖片并內(nèi)存其中,此時將圖片按照最小的生成格式(JPEG格式)轉(zhuǎn)化為數(shù)據(jù)流[14],再將流轉(zhuǎn)化為字節(jié)數(shù)組,并按每次1 024個字節(jié)將其傳給客戶端,傳送完畢后釋放內(nèi)存;客戶端水晶報表得到全部的字節(jié)流后,根據(jù)流的類型轉(zhuǎn)換為圖片,顯示在打印界面上。此過程的流程如圖6的下半部分所示。

        這里不用考慮服務(wù)器端會產(chǎn)生圖片垃圾的問題,因為服務(wù)器并沒有將生成的圖片保存在磁盤上,而是直接將生成的圖片傳給了客戶端,所以不會在服務(wù)器端產(chǎn)生垃圾圖片。這里需要說明的是,客戶端打印的條碼圖片基本不重復(fù);因此也不需要考慮對條碼圖片的重復(fù)利用。

        至此條碼便以圖片的方式傳送到客戶端,打印機(jī)對圖片的處理方式都是一樣的,用戶可以使用任何打印機(jī)對其進(jìn)行打印。

        5 結(jié)束語

        基于B/S架構(gòu)的系統(tǒng)中,客戶端進(jìn)行條碼打印是一個復(fù)雜而困難的工作??蛻舳说拇蛴C(jī)具有多種品牌,若使用ActiveX插件方式實現(xiàn)條碼打印,系統(tǒng)開發(fā)將會有很大的工作量,且不具有可擴(kuò)展性。本文探討了一種“即時條圖”的方式可以有效解決該打印問題。這種方式實現(xiàn)的難點是服務(wù)器得到請求即時的生成條碼圖片,并傳送給客戶端而不產(chǎn)生圖片垃圾,為此,本文提出了一種生成條碼圖片流的方式來響應(yīng)請求,有效解決了該難點。本文所建立的解決方案已經(jīng)在某省黃金珠寶檢測管理系統(tǒng)中使用,并取得了很好的效果。

        [1]Li Weihong,Peng Lifang.Upgrade ERP from C/S to B/S based on Web service[C]//Services Systems and Services Management,2005,Proceedings of International Conference on Service Systems and Service Management,Vol.1,2005:593-597.

        [2]羅軍紅,韓江洪,張 利,等.基于 Web Service的多層分布式體系結(jié)構(gòu)[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2004,27(1):18-22.

        [3]戚瑋瑋,宋朝輝,宋大雷,等.B/S模式下條形碼票證自定義打印的設(shè)計和實現(xiàn)[J].計算機(jī)應(yīng)用與軟件,2010,27(12):170-173.

        [4]袁金國,劉其鋒.ActiveX技術(shù)在B/S模式監(jiān)控系統(tǒng)中的應(yīng)用[J].電子技術(shù),2007(Z1):54-57.

        [5]高 揚.基于.NET平臺的三層架構(gòu)軟件框架的設(shè)計與實現(xiàn)[J].計算機(jī)技術(shù)與發(fā)展,2011,21(2):77-80,85.

        [6]李俊宏,湛邵斌.條碼技術(shù)的發(fā)展及應(yīng)用[J].計算機(jī)與數(shù)字工程,2009,37(12):115-118,154.

        [7]劉寧鐘,楊靜宇.三維條碼的編碼理論和設(shè)計[J].計算機(jī)學(xué)報,2007,30(4):686-692.

        [8]戰(zhàn)蔭偉.128條碼的編碼分析和識別算法[J].計算機(jī)工程與科學(xué),2002,24(1):74-80.

        [9]鄭 沛.ActiveX技術(shù)綜述[J].計算機(jī)系統(tǒng)應(yīng)用,1999(3):67-69.

        [10]董培征,楊學(xué)良.ActiveX技術(shù)在Web應(yīng)用中實現(xiàn)本地端打?。跩].微計算機(jī)應(yīng)用,2001,22(4):202-204.

        [11]李 健.面向ActiveX控件的動態(tài)鏈接庫開發(fā)研究[J].科技信息,2011(31):115-116.

        [12]lhj588.Code128條碼生成[EB/OL].[2012-10-28].http://www.cnblogs. com/lhj588/archive/2012/10/28/2743148.html.

        [13]朱衛(wèi)新.Visual C#.NET實現(xiàn)用戶自定義圖形編程方法[J].計算機(jī)技術(shù)與發(fā)展,2012,22(4):130-132,136.

        [14]吳峰光,奚宏生,徐陳鋒.一種支持并發(fā)訪問流的文件預(yù)取算法[J].軟件學(xué)報,2010,21(8):1820-1833.

        A barcode printing method based on image generation in B/S

        XIAO Peng-lin, ZHOU Guo-xiang, SHI Lei
        (School of Computer and Information,Hefei University of Technology,Hefei 230009,China)

        Different brands of barcode printers print barcodes in different ways,thus making the B/S structure barcode printing become a complex problem hard to have unified solution.In this paper,the inadequacies of current B/S structure barcode printing method are analyzed.Then the corresponding ActiveX plug-in for specific brand printers is developed to achieve barcode printing.Based on the introduction of barcode image generation rules,an instant barcode image method which can effectively avoid the printer difference is investigated to achieve the unification and simplification of barcode printing.Currently,this method has been applied effectively in a real detection management system.

        management information system;B/S structure;ActiveX plug-in;barcode;barcode image

        TP317.1

        A

        1003-5060(2014)06-0690-05

        10.3969/j.issn.1003-5060.2014.06.011

        2013-06-24;

        2013-10-10

        國家自然科學(xué)基金重點資助項目(60633060)

        肖朋林(1989-),男,安徽亳州人,合肥工業(yè)大學(xué)碩士生;

        周國祥(1956-),男,安徽合肥人,合肥工業(yè)大學(xué)教授,碩士生導(dǎo)師.

        (責(zé)任編輯 張 镅)

        猜你喜歡
        條碼插件打印機(jī)
        中國條碼技術(shù)與應(yīng)用協(xié)會
        條碼微站
        自編插件完善App Inventor與樂高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        另類3D打印機(jī)
        打印機(jī)基板大型注塑模具設(shè)計
        中國塑料(2016年7期)2016-04-16 05:25:55
        FDM型混色3D打印機(jī)的設(shè)計
        MapWindowGIS插件機(jī)制及應(yīng)用
        基于Revit MEP的插件制作探討
        復(fù)制粘貼打印機(jī)
        基于固定條碼與電子標(biāo)簽比對設(shè)備的設(shè)計
        国产女人91精品嗷嗷嗷嗷| 正在播放国产多p交换视频| 日韩高清在线观看永久| 国产91色在线|亚洲| 国产福利小视频在线观看| 国产自产自现在线视频地址| 永久免费看黄网站性色| 国精产品一区一区二区三区mba| 国产一区二区在线视频| 国产精品一久久香蕉国产线看观看| av免费看网站在线观看| 国产中文字幕亚洲国产| 开心五月婷婷激情综合网| 小说区激情另类春色| 亚洲av中文无码乱人伦在线r▽| 国产黄页网站在线观看免费视频| 天堂网av在线| 国产人妖直男在线视频| 女同性恋一区二区三区av| 日本高清视频永久网站www | 三上悠亚av影院在线看| 亚洲第一免费播放区| 亚洲乱码中文字幕一线区| 18禁成人黄网站免费观看| 国产丝袜无码一区二区三区视频 | 亚洲国产天堂一区二区三区| 免费在线视频一区| av网站免费在线不卡| 国产激情久久久久久熟女老人| 欲色天天网综合久久| 亚洲欧美日韩国产色另类| 色婷婷久久99综合精品jk白丝| 免费一级淫片日本高清| 97日日碰人人模人人澡| yeyecao亚洲性夜夜综合久久 | 国产两女互慰高潮视频在线观看| 久久99国产乱子伦精品免费| 玩弄极品少妇被弄到高潮| 国产三级精品视频2021| 天天爽夜夜爱| 无码一区二区三区AV免费换脸|