一种基于打印驱动层的对接技术制造技术

技术编号:15822379 阅读:24 留言:0更新日期:2017-07-15 04:41
本发明专利技术涉及一种基于打印驱动层的对接技术。本发明专利技术通过基于打印机驱动技术在打印机驱动层截取打印数据流,然后封装保存,再通过解析、提取打印数据流,将提取数据传送给对接系统或者服务端,对接系统或者服务端在接受数据经过处理后再返回响应数据,程序再将返回来的数据生成二维码并将二维码追加在原始打印数据流后面一起打印出来,用户通过扫码打印出来的二维码,即可实现两个不同系统的无缝对接。本发明专利技术旨在为商家提供一套低成本的系统对接解决方案,在不改变商户现有系统和不增加硬件设备的前提下,通过本发明专利技术即可实现不同系统的对接,特别对是对一些传统商超、餐饮行业,通过在消费小票上自动附加收款二维码,不但可以帮助其打通移动支付,同时建立跟顾客二次营销的桥梁,实现传统收银系统和移动支付的完美结合。

【技术实现步骤摘要】
一种基于打印驱动层的对接技术
本专利技术涉及不同系统之间对接方法,具体是一种基于打印驱动层的对接技术。
技术介绍
随着21世纪互联网的高速发展,人们的生产、生活方式被彻底颠覆了。特别是在移动互联网领域,随着手机3G和4G技术的不断发展,手机网民数量出现爆炸性增长,因此带动了移动的支付业务连年保存数倍的超高位增长,手机支付已成为现代人们不可或缺的支付方式。面对着移动支付这块大蛋糕,各大商家纷纷想趁支付行业变革之际,早一步进入移动支付市场,抢占市场份额。但是却尴尬的发现,由于互联网革命发展的太快了,许多商家还在使用着早期的功能简单、技术老旧、单机版的电脑系统软件,同时软件提供商基于更新换代利益驱使,往往不再对老系统提供功能升级,而是推荐客户从新购买新软件,而另一方面商户购买新软件往往需要投入大量财力、物力、人力和时间来完成软件的调试、数据的迁移、人员培训等,这是商户所不愿看见的。而目前解决此类问题只能通过系统对接方式。目前实现系统对接主要有两种方法:一种是软件提供商双方进行协商,软件一方通过调用对接另一方软件接口完成系统对接,但是不同系统之间由于开发语言的不同、技术架构和应用场景的不同以及竞争关系等原因,造成对接推进困难、周期长、成本高、操作难度大。另一种是通过采用一些硬件辅助设备进行系统对接,如国内“多啦宝”公司开发了一款哆啦开店宝硬件,商家收银软件可以通过这个哆啦开店宝将消费金额生成一个二维码让客户进行扫描支付,从而让收银软件具备移动支付功能,但是这样成本高、依赖硬件支撑、局限性大,而且这哆啦开店宝只聚焦于移动支付,功能简单、局限性大。因此。这两种对接都有着需要投入大量财力、物力、人力和时间等缺点,这严重挫伤了商户进入移动支付市场的积极性。
技术实现思路
本专利技术的目的在于提供一种基于打印驱动层的对接技术,以解决上述
技术介绍
中提出的问题。为实现上述目的,本专利技术提供如下技术方案:一种基于打印驱动层的对接技术,可以在电脑生成一个定制的虚拟打印机驱动,通过这个驱动可以截取传入的打印机驱动数据,并将数据流封装成自定义的格式发送给应用程序,应用程序则通过对文件进行解析,并将所提取的数据发送给对接系统或者服务端,再将服务返回数据生成二维码,最后再将原始打印数据和追加在后的二维码一起打印机出来,客户通过扫码二维码就可以实现不同系统之间的数据交互。作为本专利技术进一步的方案:所述制的虚拟打印机驱动基于微软打印机体系,在用户模式下利用COM接口和HOOK技术重写INDEX_DrvStartDoc、INDEX_DrvEndDoc等INDEX_DrvXXX系列打印机驱动钩子函数,并定义、选择名为sz1card1的LocalPort型端口,加上定制对应的ini、inf、gpd文件,安装名为sz1card1Print打印机驱动,以此截取包含页面布局和作业控制指令信息的数据流。作为本专利技术进一步的方案:所述定制的虚拟打印机驱动包含的打印机处理器,通过对打印机处理器接口函数PrintDocumentOnPrintProcessor重写,完成对打印数据流的截取、封装、保存,然后通知应用程序开始进行数据解析。作为本专利技术进一步的方案:所述应用程序,在接到驱动层消息通知后,将接受到的打印机数据按照约定的规则将其数据解析出来,并且根据提取规则将所需要的数据提取出来。作为本专利技术进一步的方案:所述对接系统,应用程序将提取到数据通过网络请求发送到对接系统或服务器,对接系统或服务器在接受到数据后经过处理再根据需要返回应用程序。作为本专利技术进一步的方案:所述打印,在接受到对接系统返回的数据后,将返回来的数据生成二维码,应用程序再将原始打印数据原始打印出来并在后面追加打印二维码,用户通过扫码此二位即可享受移动支付,从而实现不同系统的对接。与现有技术相比,本专利技术的有益效果是:本专利技术采用基于打印机驱动技术实现不同系统对接的方法,不但不需要增加额外的硬件设备,而且不用改变原有的系统软件,无需培训工作人员,就可以实现不同系统的对接,同时可以新增移动支付和会员营销等营销拓展功能。附图说明图1为打印对接交互示意图;图2为打印数据流封装框架。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和以餐饮行业系统对接具体实施方式为例对本专利的技术方案作进一步详细地说明。a)驱动层。图1为本专利技术打印对接交互示意图,在微软Windows2000以后的打印体系结构都是由一个打印假脱机程序(Spooler)和一系列的打印驱动组成,当应用程序调用GDI函数执行打印时,GDI首先调用与此设备上下文相对应的打印机发出一个打印请求,然后接着GDI会调用相应的打印机驱动程序来处理打印请求,而在打印机驱动里面的打印假脱机服务将会在接受到打印机处理请求任务后会在系统磁盘上以一种特殊的增强图元格式文件将打印原始数据流保存成假托机文件,当假托机文件创建完成后,就会被发送到后台的printspooler打印出来,由于根据微软的打印体系结构其假脱系统和其他打印组件都是可以替换的,所以通过开发定制虚拟打印机驱动,完成对打印数据的拦截。因此本专利技术利用微软DDK,在用户模式下利用COM接口和HOOK技术重写INDEX_DrvStartDoc、INDEX_DrvEndDoc等INDEX_DrvXXX系列打印机驱动钩子函数,并通过定制对应的ini、inf、gpd文件,创建和使用名为sz1card1的LocalPort型端口以及通过自定义PrintProcessor,其中由于PrintProcessor中PrintDocumentOnPrintProcessor函数是处理打印任务,我们在其中可以获取到打印数据、打印命令和相关设置属性,按照如图2打印数据流封装框架进行数据封装,当数据封装、保存后使用事件对象Event通知本专利技术应用服务进行解析。通过上面步骤,当餐饮行业收银系统打印小票时,小票数据会被拦截保存因此小票并没有真正打印出来。b)应用服务层。本专利技术在接受到驱动层的事件对象通知后,首先会通过采用异步机制一方面将驱动层转化后可以被解析的数据流文件进行数据解析,程序先在数据文件末尾取出EVMODE数据部分相对于整个文件末尾的偏移量,通过偏移量读取到DEVMODE数据完成对真实打印机的打印页数、纸张大小、纸张方向等初始化设置,然后当定位到0x50的文件位置,读取2个DWORD数据后,再次使用GDI+和一系列EMR_XXX函数将文件解析出来,由于应用程序是通过GDI函数进行打印操作的并且这些绘图记录实际是存在Metafile文件中,所以通过然后通过利用EnumerateMetafile的回调功能,可以在回调的函数通过switch拦截已知的120多种绘图记录类型,从而完成打印数据流的提取。另一方面程序在完成在将所需的数据提取后,程序根据配置文件里面的对接程序地址,采用跨平台的网络协议libcurl,可以通过多种通信方式如http、https等将数据发送到对接系统,对接系统在经过数据处理后,可以向程序返回数据,程序可以通过设置CURLOPT_WRITEFUNCTION可以在回调函数里接受到返回的值,并且可以根据curl_easy_perform函数error状态码对通信进行容错处理,提高程序健壮性。然本文档来自技高网
...
一种基于打印驱动层的对接技术

【技术保护点】
一种基于打印驱动层的对接技术,其特征在于,所述打印机驱动技术的系统对接软件包括打印机驱动层系统、应用服务层系统、通信信层交互系统、数据打印系统。

【技术特征摘要】
1.一种基于打印驱动层的对接技术,其特征在于,所述打印机驱动技术的系统对接软件包括打印机驱动层系统、应用服务层系统、通信信层交互系统、数据打印系统。2.根据权利要求1所述的一种基于打印驱动层的对接技术,其特征在于本发明在电脑安装生成定制的虚拟打印机驱动,在驱动层将打印数据拦截并进行封装然后保存,并与应用层进行通信交互。3.根据权利要求1所述的一种基于打印驱动层的对接技术,其特征在于本发明在应用层接到驱动层保存...

【专利技术属性】
技术研发人员:皮强
申请(专利权)人:深圳一卡易科技股份有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1