CN111078161A - 打印机的模拟方法、装置、电子设备及存储介质 - Google Patents
打印机的模拟方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111078161A CN111078161A CN201911121911.9A CN201911121911A CN111078161A CN 111078161 A CN111078161 A CN 111078161A CN 201911121911 A CN201911121911 A CN 201911121911A CN 111078161 A CN111078161 A CN 111078161A
- Authority
- CN
- China
- Prior art keywords
- printer
- virtual
- printing
- communication connection
- instruction stream
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
- G06F3/1218—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources
- G06F3/1219—Reducing or saving of used resources, e.g. avoiding waste of consumables or improving usage of hardware resources with regard to consumables, e.g. ink, toner, paper
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本申请实施例公开了一种打印机的模拟方法、装置、电子设备及存储介质,所述方法包括:建立虚拟打印机与打印控制设备的通信连接;通过所述通信连接接收所述打印控制设备发送的打印数据的指令流;解析所述指令流,得到所述打印数据;确定所述打印数据的展示样式;根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。本申请实施例实现了对真实的打印机的模拟,只需要输出展示页面,无需真正打印,节省了纸张资源,而且不用连接真正的打印机,就可以根据显输出的展示页面进行样式和数据的校验,从而实现对打印控制程序的测试,可以提高测试效率。
Description
技术领域
本申请涉及打印机技术领域,特别是涉及一种打印机的模拟方法、装置、电子设备及存储介质。
背景技术
在餐饮、零售行业的POS(Point Of Sale,销售终端)中常用热敏打印机打印小票,小票的类型包括收款结算时的购物小票、后厨制作菜品的制单小票、会员储值的凭证小票等。
在日常POS系统开发工作中离不开对小票的依赖,如开发订单、交班模块的人员需要关心打印出小票的金额、汇总数据是否正确,单据样式是否符合预期;开发点餐模块的人员需要关心制作小票的菜品、备注、单据数据及样式是否符合预期。
开发非打印模块的人员需要配置真实的打印机来检测打印控制程序输出的小票是否符合要求,对硬件的依赖性较强,且在不断的测试中浪费纸张资源,而且连接真实的打印机时依赖物理连接如局域网、USB线,真实的打印机连接较为不便,造成测试效率较低。
发明内容
本申请实施例提供一种打印机的模拟方法、装置、电子设备及存储介质,以节约纸张资源,提高测试效率。
为了解决上述问题,第一方面,本申请实施例提供了一种打印机的模拟方法,包括:
建立虚拟打印机与打印控制设备的通信连接;
通过所述通信连接接收所述打印控制设备发送的打印数据的指令流;
解析所述指令流,得到所述打印数据;
确定所述打印数据的展示样式;
根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
第二方面,本申请实施例提供了一种打印机的模拟装置,包括:
通信连接建立模块,用于建立虚拟打印机与打印控制设备的通信连接;
指令流接收模块,用于通过所述通信连接接收所述打印控制设备发送的打印数据的指令流;
指令流解析模块,用于解析所述指令流,得到所述打印数据;
展示样式确定模块,用于确定所述打印数据的展示样式;
展示页面输出模块,用于根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的打印机的模拟方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的打印机的模拟方法的步骤。
本申请实施例公开的打印机的模拟方法、装置、电子设备及存储介质,通过建立虚拟打印机与打印控制设备的通信连接,通过所述通信连接接收打印控制设备发送的打印数据的指令流,解析指令流得到打印数据,确定打印数据的展示样式,并根据所述展示样式将打印数据组织为展示页面,输出所述展示页面,实现了对真实的打印机的模拟,只需要输出展示页面,无需真正打印,节省了纸张资源,而且不用连接真正的打印机,就可以根据输出的展示页面进行样式和数据的校验,从而实现对打印控制程序的测试,可以提高测试效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一的打印机的模拟方法的流程图;
图2是本申请实施例中的展示页面的示例图;
图3是本申请实施例中的包括切刀标识图形的展示页面的实例图;
图4是本申请实施例二的打印机的模拟方法的流程图;
图5是本申请实施例三的打印机的模拟方法的流程图;
图6是本申请实施例四的打印机的模拟装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
本实施例公开的一种打印机的模拟方法,所述打印机可以是热敏打印机,该方法适用于依赖热敏打印机的开发测试场景中,所述开发测试场景如收银程序的开发测试等。如图1所示,该方法包括:步骤110至步骤150。
步骤110,建立虚拟打印机与打印控制设备的通信连接。
其中,虚拟打印机为安装于终端设备上的打印程序,可以模拟各种品牌和型号的真实打印机,用户可以根据要模拟的打印机的品牌和型号进行选择确定。所述终端设备可以是计算机,也可以是收银机或制票机等POS机。所述打印控制设备是控制打印数据的设备,例如可以是收银机或制票机等POS机,所述打印控制设备还可以是控制打印数据的程序,例如收银程序等。
根据虚拟打印机的类型,采取对应的方式建立虚拟打印机与打印控制设备的通信连接。在虚拟打印机为虚拟网络打印机时,虚拟打印机可以是安装于计算机上的打印程序,打印控制设备为独立于所述计算机的另一设备,这时需要建立虚拟打印机与打印控制设备的网络通信连接。在虚拟打印机为USB(Universal Serial Bus,通用串行总线)打印机时,为了避免连接USB线,虚拟打印机为安装于收银机等POS设备上的打印程序,此时打印控制设备为安装于POS设备上的打印控制程序,虚拟打印机与POS设备上的打印控制设备共享操作系统,这时需要建立虚拟打印机与打印控制设备的虚拟USB通信连接。
步骤120,通过所述通信连接接收所述打印控制设备发送的打印数据的指令流。
打印控制设备向打印机发送打印数据时,以指令流的形式发送打印数据,打印控制设备首先根据打印机的品牌和型号将打印数据封装为相应品牌和型号的打印机的指令流,从而虚拟打印机可以通过与打印控制设备的通信连接接收到打印控制设备发送的打印数据的指令流。
步骤130,解析所述指令流,得到所述打印数据。
虚拟打印机根据当前所模拟的打印机的品牌和型号对应的指令集解析所述指令流,得到打印数据。其中,所述指令集包括字符控制指令、汉字控制指令、一维条码打印指令、二维码打印指令以及其他相关指令,不同品牌和型号的打印机指令集不同。
可以在解析指令流之前,根据打印机指令流构建注册表,当接收到指令流后根据注册表进行解析处理,并对指令长度进行校验。如果指令流长度发送错误,则会保持和真实打印机一样,将错误的数据认为是指令进行打印,从而会产生乱码现象,并展示在展示页面中。
步骤140,确定所述打印数据的展示样式。
获取用户设置的当前展示样式,作为所述打印数据的展示样式。其中,所述展示样式可以包括纸张宽度,还可以包括其他相关展示样式,如字体大小等。
步骤150,根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
根据所述展示样式,将打印数据组织为展示页面的形式,并输出所述展示页面,例如在当前设备的显示屏上显示所述展示页面,或在连接的显示设备上显示所述展示页面等。打印数据的指令集中可以包括打印数据对应的纸张宽度,而虚拟打印机可以采用与打印数据的指令集中的纸张宽度相同的纸张宽度,也可以采用不同的纸张宽度,如将组装好的58mm的打印数据的指令流发送至80mm的虚拟打印机中,便于开发人员观察样式形变是否符合预期。
本申请实施例公开的打印机的模拟方法,通过建立虚拟打印机与打印控制设备的通信连接,通过所述通信连接接收打印控制设备发送的打印数据的指令流,解析指令流得到打印数据,确定打印数据的展示样式,并根据所述展示样式将打印数据组织为展示页面,输出所述展示页面,实现了对真实的打印机的模拟,只需要输出展示页面,无需真正打印,节省了纸张资源,而且不用连接真正的打印机,就可以根据输出的展示页面进行样式和数据的校验,从而实现对打印控制程序的测试,可以提高测试效率,进而可以提高开发打印控制程序的开发人员的开发效率。
在上述技术方案的基础上,在所述解析所述指令流之前,还包括:响应于打印机选择指令,显示虚拟打印机的品牌和型号;获取用户选择的品牌和型号,作为当前的虚拟打印机的品牌和型号。
图2是本申请实施例中的展示页面的示例图,图2以结账小票为例,如图2所示,展示页面中可以包括打印机品牌栏1和纸张宽度栏2。
在检测到用户点击打印机品牌栏1时确定接收到打印机选择指令。在接收到打印机选择指令时,可以通过下拉菜单显示虚拟打印机的品牌和型号,用户点击的品牌和型号为用户选择的品牌和型号,将该品牌和型号作为当前的虚拟打印机的品牌和型号,实现了对不同类型打印机的模拟,而且可以扩展不同类型的打印机。
在上述技术方案的基础上,在确定所述打印数据的展示样式之前,还包括:响应于纸张宽度切换指令,显示虚拟打印机的纸张宽度;获取用户选择的纸张宽度,作为当前的纸张宽度。
可以在检测到用户点击纸张宽度栏2时,确定接收到纸张宽度切换指令,这时可以通过下拉菜单显示虚拟打印机的纸张宽度,并获取用户选择的纸张宽度作为当前的纸张宽度,实现了对纸张宽度的切换,用户可以根据需要切换相应的纸张宽度,观察小票的样式变化。
在上述技术方案的基础上,还包括:响应于通过所述通信连接接收到切刀指令流,解析所述切刀指令流,确定切刀标识图形,显示所述切刀标识图形。打印控制设备可以控制打印出的小票进行切刀,这时可以发送切刀指令流,在虚拟打印机接收到切刀指令流时,解析切刀指令流确定该指令为切刀指令时,确定切刀标识图形,并在展示页面上的对应位置添加切刀标识图形,如图3所示,所述剪刀图形3为切刀标识图形,实现了小票样式的多样化。在虚拟打印机为虚拟网络打印机时,通过监听打印端口,监听到切刀指令流。
在上述技术方案的基础上,还包括:响应于通过所述通信连接接收到开钱箱指令流,解析所述开钱箱指令流,确定开钱箱标识图形,显示所述开钱箱标识图形。打印控制设备可以控制打印机进行开钱箱的操作,通过发送开钱箱指令流给虚拟打印机,虚拟打印机接收到开钱箱指令流,通过解析该指令流确定为开钱箱指令时,确定开钱箱标识图形,并在打印数据的展示页面上的对应位置添加开钱箱标识图形,实现了小票样式的多样化。在虚拟打印机为虚拟网络打印机时,通过监听打印端口,监听到开钱箱指令流。
在上述技术方案的基础上,还包括:响应于通过所述通信连接接收到蜂鸣器指令流,解析所述蜂鸣器指令流,确定待播放的声音,并播放所述声音。打印控制设备还可以控制打印机蜂鸣器,虚拟打印机接收到打印控制设备发送的蜂鸣器指令流时,解析该蜂鸣器指令流,确定为蜂鸣器指令,确定待播放的声音,并播放所述声音,实现了对蜂鸣器的模拟。在虚拟打印机为虚拟网络打印机时,通过监听打印端口,监听到蜂鸣器指令流。
实施例二
本实施例公开的一种打印机的模拟方法,所述打印机可以是热敏打印机,本实施例在上述实施例的基础上,所述虚拟打印机为虚拟网络打印机,即模拟的打印机具体为热敏打印机中的网络打印机,该方法可以由计算机来执行。如图4所示,该方法包括:步骤410至步骤460。
步骤410,通过所述虚拟打印机启动打印机相关的打印端口。
其中,所述打印端口为9100端口,9100端口为网络打印机的打印端口。
安装于计算机中的虚拟打印机在所述计算机中启动打印机相关的打印端口。
步骤420,通过所述打印端口建立虚拟打印机与打印控制设备的网络通信连接。
启动打印端口后,通过打印端口可以建立虚拟打印机与打印控制设备的网络通信连接。其中,所述网络通信连接可以是基于有线或无线局域网的连接。
步骤430,监听所述打印端口,通过所述打印端口接收所述打印控制设备发送的打印数据的指令流。
在建立虚拟打印机与打印控制设备的网络通信连接后,打印控制设备可以将要打印的打印数据对应的指令流通过该网络通信连接发送至虚拟打印机,虚拟打印机通过监听所述打印端口,可以接收到打印控制设备发送的打印数据的指令流。
在本申请的一个实施例中,在所述监听所述打印端口,通过所述打印端口接收所述打印控制设备发送的打印数据的指令流之前,还包括:启动打印机相关的状态查询端口;通过所述状态查询端口建立虚拟打印机与所述打印控制设备的网络通信连接;监听所述状态查询端口,响应于监听到所述打印控制设备发送的状态查询指令,获取打印状态,将所述打印状态发送给所述打印控制设备。
其中,所述状态查询端口为4000端口,4000端口为网络打印机的状态查询端口。
通过状态查询端口建立虚拟打印机与打印控制设备的网络通信连接,打印控制设备在将打印数据发送至虚拟打印机之前,先发送对打印机的状态查询指令,虚拟打印机通过监听状态查询端口,在监听到打印控制设备发送的状态查询指令时获取自身的打印状态,并将打印状态发送给打印控制设备。在打印状态为可以接收打印数据时,打印控制设备再将打印数据的指令流发送至虚拟打印机的打印端口,通过状态查询端口查询打印机状态后再发送相应的指令流,可以发送较为准确的指令流,避免了发送的指令得不到响应的情况。
步骤440,解析所述指令流,得到所述打印数据。
步骤450,确定所述打印数据的展示样式。
步骤460,根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
本申请实施例公开的打印机的模拟方法,通过虚拟打印机启动打印机相关的打印端口,通过所述打印端口建立虚拟打印机与打印控制设备的网络通信连接,监听所述打印端口,通过所述打印端口接收打印控制设备发送的打印数据的指令流,解析所述指令流得到打印数据,确定打印数据的展示样式后,将打印数据组织为展示页面,并输出展示页面,实现了对网络打印机的模拟,只需要输出展示页面,无需真正打印,节省了纸张资源,而且不用连接真正的网络打印机,可以提高测试效率,进而提高开发人员的开发效率。
实施例三
本实施例公开的一种打印机的模拟方法,所述打印机可以是热敏打印机,本实施例在上述实施例的基础上,所述虚拟打印机为虚拟USB打印机,即模拟的打印机具体为热敏打印机中的USB打印机,该方法可以由打印控制终端设备来执行。如图5所示,该方法包括:步骤510至步骤560。
步骤510,通过虚拟打印机获取USB接口管理对象,并将操作系统上下文对象中缓存的USB接口管理对象替换为虚拟USB接口管理对象,所述虚拟USB接口管理对象包括USB相关虚拟API。
在本实施例中,虚拟打印机为安装于打印控制终端设备上的打印程序,打印控制设备为安装于同一打印控制终端设备上的打印控制程序。所述打印控制终端设备的操作系统为安卓(Android)系统。
其中,USB接口管理(UsbManager)用于获得USB的状态,与连接的USB设备通信。USB由Host端控制整个总线的数据传输。
首先通过虚拟打印机获取UsbManager对象,这时操作系统上下文对象(即应用的上下文,如Android Context)会缓存UsbManager对象,为了在与打印控制设备所在的同一设备中使用虚拟打印机,通过Hook技术将操作系统上下文对象中缓存的UsbManager对象替换为虚拟UsbManager对象,后续打印控制设备会通过USB相关虚拟API建立与虚拟打印机的虚拟USB通信连接。其中,所述USB相关虚拟API(Application Programming Interface,应用程序编程接口)包括UsbDevice、UsbDeviceConnection、UsbEndpoint、UsbInterface和UsbRequest等API。UsbDevice是USB设备的抽象,包含一个或多个UsbInterface,每个UsbInterface包含多个UsbEndpoint,Host与其通信,先打开UsbDeviceConnection,使用UsbRequest在一个端点(UsbEndpoint)发送和接收数据。UsbDeviceConnection是主设备(Host)与设备建立的连接。UsbEndpoint是UsbInterface的通信信道。UsbInterface代表USB设备的一个接口,定义该设备的功能集,一个UsbDevice包含一个或多个UsbInterface,每个UsbInterface都是独立的。UsbRequest定义USB请求包,可以在UsbDeviceConnection上异步传输数据。
步骤520,通过所述USB相关虚拟API建立虚拟打印机与打印控制设备的虚拟USB通信连接。
本申请实施例中,所述打印控制设备为USB连接中的主设备(Host),所述虚拟USB通信连接由所述打印控制设备控制建立,所述打印控制设备控制建立所述虚拟USB通信连接包括:响应于所述打印控制设备获取USB接口管理对象,根据所述操作系统上下文对象获取到所述虚拟USB接口管理对象;所述打印控制设备根据所述虚拟USB接口管理对象获取到虚拟设备;响应于所述虚拟设备的类型为打印机,所述打印控制设备通过打开设备方法获取与所述虚拟设备的虚拟USB连接,并独占所述虚拟设备,确定虚拟USB输入API和虚拟USB输出API。
在打印控制设备获取UsbManager对象时,由于操作系统上下文对象中缓存了虚拟UsbManager对象,从而打印控制设备获取到虚拟UsbManager对象,通过虚拟UsbManager对象获取到虚拟设备列表,根据该虚拟设备列表选取要连接的虚拟设备,判断该虚拟设备是否有连接权限,在该虚拟设备有连接权限时,获取虚拟设备的类型,若interfaceClass等于7,则确定该虚拟设备的类型的为打印机,打印控制设备通过OpenDevice方法获取与所述虚拟设备的虚拟USB连接,即打开UsbDeviceConnection,独占所述虚拟设备,确定虚拟USB输入API(即输入UsbEndpoint)和虚拟USB输出API(即输出UsbEndpoint),从而建立了虚拟设备与打印控制设备的虚拟USB通信连接。
步骤530,通过所述虚拟USB通信连接接收所述打印控制设备发送的打印数据的指令流。
在建立虚拟打印机与打印控制设备的虚拟USB通信连接后,打印控制设备可以通过bulkTransfer传输数据给虚拟打印机,虚拟打印机可以接收到打印数据的指令流。
步骤540,解析所述指令流,得到所述打印数据。
步骤550,确定所述打印数据的展示样式。
步骤560,根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
本申请实施例公开的打印机的模拟方法,通过虚拟打印机获取UsbManager对象,并将操作系统上下文对象中缓存的UsbManager对象替换为虚拟UsbManager对象,虚拟UsbManager对象包括USB相关虚拟API,通过USB相关虚拟API建立虚拟打印机与打印控制设备的虚拟USB通信连接,通过虚拟USB通信连接接收打印控制设备发送的打印数据的指令流,解析指令流得到打印数据,确定打印数据的展示样式,根据展示样式将打印数据组织为展示页面,并输出所述展示页面,实现了对USB打印机的模拟,只需要输出展示页面,无需真正打印,节省了纸张资源,而且不用连接真正的USB打印机,可以提高测试效率,进而提高开发人员的开发效率。
实施例四
本实施例公开的一种打印机的模拟装置,如图6所示,所述打印机的模拟装置600包括:
通信连接建立模块610,用于建立虚拟打印机与打印控制设备的通信连接;
指令流接收模块620,用于通过所述通信连接接收所述打印控制设备发送的打印数据的指令流;
指令流解析模块630,用于解析所述指令流,得到所述打印数据;
展示样式确定模块640,用于确定所述打印数据的展示样式;
展示页面输出模块650,用于根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
可选的,所述虚拟打印机为虚拟网络打印机;
所述通信连接建立模块包括:
打印端口开启单元,用于通过所述虚拟打印机启动打印机相关的打印端口;
通信连接建立单元,用于通过所述打印端口建立虚拟打印机与打印控制设备的网络通信连接;
所述指令流接收模块具体用于:
监听所述打印端口,通过所述打印端口接收所述打印控制设备发送的打印数据的指令流。
可选的,所述装置还包括:
状态查询端口启动模块,用于启动打印机相关的状态查询端口;
查询连接建立模块,用于通过所述状态查询端口建立虚拟打印机与所述打印控制设备的网络通信连接;
打印状态发送模块,用于监听所述状态查询端口,响应于监听到所述打印控制设备发送的状态查询指令,获取打印状态,将所述打印状态发送给所述打印控制设备。
可选的,所述虚拟打印机为虚拟USB打印机;
所述通信连接建立模块包括:
USB接口管理对象替换单元,用于通过所述虚拟打印机获取USB接口管理对象,并将操作系统上下文对象中缓存的USB接口管理对象替换为虚拟USB接口管理对象,所述虚拟USB接口管理对象包括USB相关虚拟API;
通信连接建立单元,用于通过所述USB相关虚拟API建立虚拟打印机与打印控制设备的虚拟USB通信连接。
可选的,所述虚拟USB通信连接由所述打印控制设备控制建立,所述打印控制设备控制建立所述虚拟USB通信连接包括:
响应于所述打印控制设备获取USB接口管理对象,根据所述操作系统上下文对象获取到所述虚拟USB接口管理对象;
所述打印控制设备根据所述虚拟USB接口管理对象获取到虚拟设备;
响应于所述虚拟设备的类型为打印机,所述打印控制设备通过打开设备方法获取与所述虚拟设备的虚拟USB连接,并独占所述虚拟设备,确定虚拟USB输入API和虚拟USB输出API。
可选的,所述装置还包括:
品牌型号显示模块,用于响应于打印机选择指令,显示虚拟打印机的品牌和型号;
品牌型号确定模块,用于获取用户选择的品牌和型号,作为当前的虚拟打印机的品牌和型号。
可选的,所述装置还包括:
纸张宽度显示模块,用于响应于纸张宽度切换指令,显示虚拟打印机的纸张宽度;
纸张宽度确定模块,用于获取用户选择的纸张宽度,作为当前的纸张宽度。
可选的,所述装置还包括:
切刀模拟模块,用于响应于通过所述通信连接接收到切刀指令流,解析所述切刀指令流,确定切刀标识图形,显示所述切刀标识图形。
可选的,所述装置还包括:
开钱箱模拟模块,用于响应于通过所述通信连接接收到开钱箱指令流,解析所述开钱箱指令流,确定开钱箱标识图形,显示所述开钱箱标识图形。
可选的,所述装置还包括:
蜂鸣器模拟模块,用于响应于通过所述通信连接接收到蜂鸣器指令流,解析所述蜂鸣器指令流,确定待播放的声音,并播放所述声音。
本申请实施例提供的打印机的模拟装置,用于实现本申请实施例中所述的打印机的模拟方法的各步骤,装置的各模块的具体实施方式参见相应步骤,此处不再赘述。
本申请实施例公开的打印机的模拟装置,通过通信连接建立模块建立虚拟打印机与打印控制设备的通信连接,指令流接收模块通过所述通信连接接收打印控制设备发送的打印数据的指令流,指令流解析模块解析指令流得到打印数据,展示样式确定模块确定打印数据的展示样式,展示页面显示模块根据所述展示样式将打印数据组织为展示页面,输出所述展示页面,实现了对真实的打印机的模拟,只需要输出展示页面,无需真正打印,节省了纸张资源,而且不用连接真正的打印机,就可以根据输出的展示页面进行样式和数据的校验,从而实现对打印控制程序的测试,可以提高测试效率,进而可以提高开发打印控制程序的开发人员的开发效率。
相应的,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例所述的打印机的模拟方法。所述电子设备可以为PC机、移动终端、个人数字助理、平板电脑等。
本申请实施例还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所述的打印机的模拟方法的步骤。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上对本申请实施例提供的一种打印机的模拟方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件实现。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
Claims (13)
1.一种打印机的模拟方法,包括:
建立虚拟打印机与打印控制设备的通信连接;
通过所述通信连接接收所述打印控制设备发送的打印数据的指令流;
解析所述指令流,得到所述打印数据;
确定所述打印数据的展示样式;
根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
2.根据权利要求1所述的方法,所述虚拟打印机为虚拟网络打印机;
所述建立虚拟打印机与打印控制设备的通信连接,包括:
通过所述虚拟打印机启动打印机相关的打印端口;
通过所述打印端口建立虚拟打印机与打印控制设备的网络通信连接;
所述通过所述通信连接接收所述打印控制设备发送的打印数据的指令流,包括:
监听所述打印端口,通过所述打印端口接收所述打印控制设备发送的打印数据的指令流。
3.根据权利要求2所述的方法,在所述监听所述打印端口,通过所述打印端口接收所述打印控制设备发送的打印数据的指令流之前,还包括:
启动打印机相关的状态查询端口;
通过所述状态查询端口建立虚拟打印机与所述打印控制设备的网络通信连接;
监听所述状态查询端口,响应于监听到所述打印控制设备发送的状态查询指令,获取打印状态,将所述打印状态发送给所述打印控制设备。
4.根据权利要求1所述的方法,所述虚拟打印机为虚拟USB打印机;
所述建立虚拟打印机与打印控制设备的通信连接,包括:
通过所述虚拟打印机获取USB接口管理对象,并将操作系统上下文对象中缓存的USB接口管理对象替换为虚拟USB接口管理对象,所述虚拟USB接口管理对象包括USB相关虚拟应用程序编程接口API;
通过所述USB相关虚拟API建立虚拟打印机与打印控制设备的虚拟USB通信连接。
5.根据权利要求4所述的方法,所述虚拟USB通信连接由所述打印控制设备控制建立,所述打印控制设备控制建立所述虚拟USB通信连接包括:
响应于所述打印控制设备获取USB接口管理对象,根据所述操作系统上下文对象获取到所述虚拟USB接口管理对象;
所述打印控制设备根据所述虚拟USB接口管理对象获取到虚拟设备;
响应于所述虚拟设备的类型为打印机,所述打印控制设备通过打开设备方法获取与所述虚拟设备的虚拟USB连接,并独占所述虚拟设备,确定虚拟USB输入API和虚拟USB输出API。
6.根据权利要求1所述的方法,在所述解析所述指令流之前,还包括:
响应于打印机选择指令,显示虚拟打印机的品牌和型号;
获取用户选择的品牌和型号,作为当前的虚拟打印机的品牌和型号。
7.根据权利要求1所述的方法,在确定所述打印数据的展示样式之前,还包括:
响应于纸张宽度切换指令,显示虚拟打印机的纸张宽度;
获取用户选择的纸张宽度,作为当前的纸张宽度。
8.根据权利要求1所述的方法,还包括:
响应于通过所述通信连接接收到切刀指令流,解析所述切刀指令流,确定切刀标识图形,显示所述切刀标识图形。
9.根据权利要求1所述的方法,还包括:
响应于通过所述通信连接接收到开钱箱指令流,解析所述开钱箱指令流,确定开钱箱标识图形,显示所述开钱箱标识图形。
10.根据权利要求1所述的方法,还包括:
响应于通过所述通信连接接收到蜂鸣器指令流,解析所述蜂鸣器指令流,确定待播放的声音,并播放所述声音。
11.一种打印机的模拟装置,包括:
通信连接建立模块,用于建立虚拟打印机与打印控制设备的通信连接;
指令流接收模块,用于通过所述通信连接接收所述打印控制设备发送的打印数据的指令流;
指令流解析模块,用于解析所述指令流,得到所述打印数据;
展示样式确定模块,用于确定所述打印数据的展示样式;
展示页面输出模块,用于根据所述展示样式,将所述打印数据组织为展示页面,并输出所述展示页面。
12.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现权利要求1至10任意一项所述的打印机的模拟方法。
13.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现权利要求1至10任意一项所述的打印机的模拟方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121911.9A CN111078161A (zh) | 2019-11-15 | 2019-11-15 | 打印机的模拟方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911121911.9A CN111078161A (zh) | 2019-11-15 | 2019-11-15 | 打印机的模拟方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111078161A true CN111078161A (zh) | 2020-04-28 |
Family
ID=70311032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911121911.9A Withdrawn CN111078161A (zh) | 2019-11-15 | 2019-11-15 | 打印机的模拟方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111078161A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022068786A1 (zh) * | 2020-09-30 | 2022-04-07 | 时时同云科技(成都)有限责任公司 | 数据打印方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571793A (zh) * | 2009-04-24 | 2009-11-04 | 广州市易票联电子商务有限公司 | 一种打印页面信息的方法及其装置、一种控件 |
CN103455285A (zh) * | 2012-05-29 | 2013-12-18 | 精工爱普生株式会社 | 控制装置、控制装置的控制方法、以及记录介质 |
CN106528006A (zh) * | 2015-09-10 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种页面打印方法及装置 |
-
2019
- 2019-11-15 CN CN201911121911.9A patent/CN111078161A/zh not_active Withdrawn
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101571793A (zh) * | 2009-04-24 | 2009-11-04 | 广州市易票联电子商务有限公司 | 一种打印页面信息的方法及其装置、一种控件 |
CN103455285A (zh) * | 2012-05-29 | 2013-12-18 | 精工爱普生株式会社 | 控制装置、控制装置的控制方法、以及记录介质 |
CN106528006A (zh) * | 2015-09-10 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 一种页面打印方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022068786A1 (zh) * | 2020-09-30 | 2022-04-07 | 时时同云科技(成都)有限责任公司 | 数据打印方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5519081B2 (ja) | プリンタ用の仮想入力/出力装置 | |
KR20150043466A (ko) | Epos 프린팅 | |
CA2506417A1 (en) | Host-based intelligent results related to a character stream | |
JP5321311B2 (ja) | 通信制御装置 | |
CN103019630B (zh) | 打印系统、打印装置和打印方法 | |
EP2634744A1 (en) | Search device, method for controlling search device, program, and information storage medium | |
JPH10333846A (ja) | 出力制御方法及び装置 | |
CN110708214B (zh) | 业务数据显示方法、装置、设备及计算机可读存储介质 | |
JP2013015978A (ja) | 情報処理装置とその制御方法、プログラム、並びに情報処理システム及び情報処理方法 | |
US10574765B2 (en) | Method, device, and non-transitory computer-readable recording medium | |
CN110135940B (zh) | 后厨订单显示装置及方法 | |
CN111078161A (zh) | 打印机的模拟方法、装置、电子设备及存储介质 | |
CN110109594A (zh) | 一种绘图数据分享方法、装置、存储介质以及设备 | |
CN1885257B (zh) | 用于按照页面来选择和打印仿真的装置和方法 | |
JP6531303B1 (ja) | 情報システム、情報処理装置、端末装置、情報処理方法、およびプログラム | |
CN109782925B (zh) | 一种处理方法、装置及电子设备 | |
US9444949B2 (en) | Simulation apparatus, simulation system, and simulation method that ensure use of general-purpose PC | |
CN113268693A (zh) | 样式配置方法、装置、存储介质及电子设备 | |
CN115102870B (zh) | 水声设备交互的可视化方法、装置、电子设备及存储介质 | |
CN101267337A (zh) | 网络管理系统及其管理方法 | |
EP3336684A1 (en) | Comparing printer models | |
JP6657853B2 (ja) | 情報処理システム、情報処理装置、情報処理方法、及びプログラム | |
CN112667505B (zh) | 一种终端测试方法、装置、存储介质及电子装置 | |
JP2004013835A (ja) | 画像形成装置、情報管理装置、画像形成システム、画像形成方法、画像データ送信方法、プログラム及び記録媒体 | |
KR100765746B1 (ko) | 인쇄장치 상태정보 제공방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20200428 |
|
WW01 | Invention patent application withdrawn after publication |