CN110459022A - 一种小票打印系统及方法 - Google Patents
一种小票打印系统及方法 Download PDFInfo
- Publication number
- CN110459022A CN110459022A CN201910744682.XA CN201910744682A CN110459022A CN 110459022 A CN110459022 A CN 110459022A CN 201910744682 A CN201910744682 A CN 201910744682A CN 110459022 A CN110459022 A CN 110459022A
- Authority
- CN
- China
- Prior art keywords
- receipt
- data
- script
- content
- 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.)
- Pending
Links
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/1203—Improving or facilitating administration, e.g. print management
-
- 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/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1229—Printer resources management or printer maintenance, e.g. device status, power levels
- G06F3/123—Software or firmware update, e.g. device firmware management
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07G—REGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
- G07G5/00—Receipt-giving machines
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Cash Registers Or Receiving Machines (AREA)
Abstract
本发明公开了一种小票打印系统及方法,通过采用JavaScript编程语言实现小票内容解析脚本。本发明通过先获取打印设备的类型参数、小票的内容数据和样式参数,再以这三者数据为输入来执行小票内容解析脚本而得以生成打印指令,最后传输打印指令给打印设备来实现小票打印。本发明通过借助JavaScript语言的跨平台特性实现一套软件代码得以在不同设备的不同系统上皆能适用的目的,还可以通过JavaScript编程语言的动态更新特性及时实现打印软件内部脚本的更新,提高了小票打印的效率,给小票打印带来极大便利。
Description
技术领域
本发明涉及打印技术领域,尤其涉及一种小票打印系统及方法。
背景技术
在现有的市场中,人们在超市和商场购物后,商户通常会在收费后提供给消费者纸质的购物小票,以方便消费者类核对所购买的商品和金额。而此类购物小票因与常规的文件打印不同,具有一定的格式要求,故通常需要专门的小票打印机来打印。
现有的小票打印机根据连接方式来划分可以分为两类,即蓝牙打印机和网络打印机,蓝牙打印机是指打印软件通过蓝牙协议把需要打印的内容发送给打印机,而网络打印机则是打印软件通过无线网络把需要打印的内容发送给打印机。当前的移动设备,即手机和平板电脑所使用的系统主要有两类系统,安卓系统和iOS系统(苹果手机的操作系统),电脑主所使用的系统主要有三种系统,即微软的视窗系统、苹果的MacOS(苹果笔记本的操作系统)和Linux系统。不同系统上的软件需要使用各自独特的编程语言得以开发,彼此之间无法直接移植使用。如主流的两种移动设备,即手机和平板电脑,它们所采用的系统如安卓系统,其上的软件需要使用JAVA或者Kotlin编程语言进行开发,而iOS系统上的软件则需要使用Objective-C或者Swift编程语言进行开发,两者采用的编程语言不同,且无法直接移植使用。故为了满足使用不同系统的用户的打印需求,当前软件开发人员需要在不同操作系统上开发多个版本的打印软件,并且分别适配两类打印机,当需要增加新功能时,每个版本的软件都需要进行代码更新和软件发布,这个过程繁琐复杂,给开发人员带来极大的工作负担。另外,由于软件开发和维护成本较大,而打印软件的功能需求又是相似的,故软件开发团队需要开发和维护不同操作系统上的多个软件明显增大了开发人员的工作量,也不利于软件的开发效率;同时,传统的软件发布的周期较长,以苹果应用市场为例,当软件新功能开发完成后,需要将软件包提交到苹果审核人员进行审核,平均耗时两个工作日,如果软件存在问题需要修复,用户需要等待至少两天左右的时间才能获得软件的更新包,这便使得软件的新功能的更新不够及时,用户体验不佳。
发明内容
本发明针对现有技术中的不足,提供一种采用JavaScript语言来实现的小票打印系统及方法,实现一套代码多端通用的效果,也提高了软件更新效率。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
本发明提供一种小票打印方法,所述小票打印方法包括如下步骤:
S110:获取小票内容解析脚本;
S120:获取打印设备的类型参数;
S130:获取小票的内容数据和样式参数;
S140:根据小票的内容数据和样式参数生成打印指令;
S150:传输打印指令给打印设备并监控打印结果。
优选地,在所述步骤S110中,所述小票内容解析脚本通过JavaScript编程语言来实现,或通过网络获取由JavaScript编程语言实现的小票内容解析脚本。
优选地,所述小票内容解析脚本包括文件版本号,所述文件版本号为所述小票内容解析脚本的版本;当通过网络接收到的新的文件版本号高于旧的文件版本号时,新的文件版本号所代表的脚本内容覆盖旧的文件版本号所代表的脚本内容,所述小票内容解析脚本发生更新;当通过网络接收到的新的文件版本号不高于旧的文件版本号时,所述小票内容解析脚本维持原状而不发生更新。
优选地,在所述步骤S130中,从外部导入至服务端的小票内容数据和样式参数,通过服务端而实现更改;从服务端获取的样式参数以文件形式缓存;生成打印指令所需的小票内容数据通过所述服务端拉取,生成打印指令所需的小票样式参数通过所述缓存的样式参数的文件而获取。
优选地,所述步骤S140包括如下子步骤:
S141:根据打印设备的类型参数、小票的内容数据和样式参数执行小票内容解析脚本的解析;
S142:在完成所述小票内容解析脚本的解析之后生成打印设备的打印指令。
优选地,所述小票内容解析脚本的执行还包括如下子步骤:
A1:获取首行小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令放入指令输出缓存区;
A2:获取下一行的小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令拼接在前一条指令的后边;
A3:重复子步骤A2,直至完成所有数据的处理。
本发明还公开一种小票打印系统,包括前台工作模块、脚本数据更新模块、打印数据接收模块、打印指令生成模块和打印模块,所述前台工作模块,供导入需要打印的小票的内容数据和样式参数,控制所述打印指令生成模块生成打印指令,控制所述打印模块打印小票;所述脚本数据更新模块通过JavaScript编程语言实现小票内容解析脚本的编码;所述打印数据接收模块接收所述前台工作模块导入的小票的内容数据和样式参数,以及获取所述打印模块的类型参数;所述打印指令生成模块通过所述小票内容解析脚本的代码逻辑来解析所述打印数据接收模块获取的数据,获取需要显示的小票的内容和样式,并根据所述打印模块的类型参数生成打印指令;所述打印模块接收所述打印指令并打印小票。
优选地,所述小票内容解析脚本包括文件版本号,所述文件版本号代表所述小票内容解析脚本的版本;所述脚本数据更新模块可以通过网络下载来获取小票内容解析脚本;所述小票内容解析脚本的更新通过所述脚本数据更新模块接收新的较高的文件版本号所代表的脚本内容覆盖原有较低的文件版本号所代表的脚本内容来实现。
优选地,小票的内容数据和样式参数通过前台工作模块导入小票打印系统,并通过在前台工作模块实现更改;从前台工作模块获取的样式参数以文件形式缓存在系统;所述打印数据接收模块从前台工作模块获取小票的内容数据,从缓存的样式参数的文件获取小票的样式参数。
优选地,所述打印指令生成模块用于:
先获取首行小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令放入指令输出缓存区;再获取下一行的小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令拼接在前一条指令的后边;重复前述操作,直至完成所有数据的处理。
本发明通过充分利用JavaScript语言的优良特性给小票打印过程带来极大的便利,使得一套软件代码得以在不同版本的打印软件上皆能适用,并可以及时通过网络下载更新包来实现更新。其中,本发明通过采用JavaScript语言来实现小票内容解析脚本的逻辑编码,可以借助JavaScript语言的跨平台特性实现在采用不同系统的设备上共用一套代码的目的,同时也避免了软件开发团队需要开发和维护不同操作系统上的多个软件的繁琐性问题;还可以通过JavaScript语言的动态更新特性及时实现打印软件内部脚本的更新;由JavaScript语言实现的小票内容解析脚本通过文件版本号来管理,打印软件通过网络即可下载到最新版本的更新包而实现快速软件更新,不必等待漫长的审核流程;本发明还通过将小票的打印信息分为内容数据和样式参数来输入,而样式参数在打印软件中被缓存以便打印软件直接拉取,给打印小票带来极大的灵活性,提高了打印设备的工作效率。
本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明公开的一种小票打印方法流程图;
图2为本发明公开的一种小票打印方法步骤S140的子步骤流程图;
图3为本发明公开的一种小票打印方法的小票内容解析脚本的执行子步骤流程图;
图4为本发明公开的一种小票打印方法所给的一种样例的小票内容解析脚本的执行子步骤流程图;
图5为本发明公开的一种小票打印方法的小票内容解析脚本的执行逻辑图;
图6为根据本发明公开的一种小票打印方法所打印的小票样例图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
附图1为本发明公开一种小票打印方法的实施例,通过采用小票内容解析脚本来实现小票的内容解析脚本,使得在采用不同的操作系统的打印软件上实现共用一套程序的目的,从而达到一份代码多端通用的效果,大大降低了软件开发团队的工作负担,同时JavaScript编程语言的动态更新的特性,也极大地加快了软件的更新速度。本实施例公开的小票打印方法包括如下步骤:
步骤S110:获取小票内容解析脚本。
在本步骤中,打印软件自身的软件包里包含一个小票内容解析脚本,这个小票内容解析脚本具有文件版本号,不同的小票内容解析脚本具有不同的文件版本号。文件版本号用于区分小票内容解析脚本的版本型号。新版本的文件版本号高于旧版本的文件版本号。打印软件在启动时,自动连接网络,当通过网络检测到有新版本的小票内容解析脚本时,打印软件便通过网络下载由JavaScript编程语言实现的新版本的小票内容解析脚本的更新包,用于软件更新。当打印软件通过网络获取到新的文件版本号时,新的文件版本号所代表的小票内容解析脚本会覆盖原有的旧文件版本号所代表的小票内容解析脚本,从而实现小票内容解析脚本的更新。在本实施例中,当旧的文件版本号为1.0.0时,打印软件通过网络获取到的新的文件版本号为1.1.0,则经打印软件判断文件版本号的高低,最后使1.1.0版本的小票内容解析脚本覆盖1.0.0版本的小票内容解析脚本,即较高文件版本号的内容覆盖较低文件版本号的内容,从而实现小票内容解析脚本的更新;当打印软件判断文件版本号为旧文件版本号时,小票内容解析脚本的不发生更新。打印软件后续再次通过网络获取一个新的文件版本号时,经打印软件判断这个新的文件版本号高于文件版本号1.1.0时,打印软件便采取脚本更新,使新的小票内容解析脚本覆盖1.1.0版本的小票内容解析脚本,之后依次类推,实现打印软件的实时更新。
在其他实施例中,如软件开发的相关科技研究中,除了通过网络来下载小票内容解析脚本的更新包,还可以通过软件开发人员或用户自身编辑JavaScript编程语言来实现打印软件程序的更新。
本实施例采用的JavaScript编程语言,作为一种跨平台的脚本语言,可以在安卓系统、ios系统和电脑浏览器上执行,故采用JavaScript编程语言实现的小票内容解析脚本可以被不同设备的打印软件所获取并执行,如采用安卓系统或ios系统的移动设备手机、平板电脑等。并且JavaScript脚本语言具有动态更新的特点,即打印软件可以直接通过网络来下载新版本的小票内容解析脚本的更新包,从而实现打印软件的脚本更新,相比较于其他不支持动态更新的编程语言诸如JAVA、Kotlin、Objective-C和Swift,本实施具有软件更新及时的优点,减少了从软件修复或改良到用户实现软件更新的周期;由于在需要增加新功能时,每个版本的软件都需要进行代码更新和软件发布,故本发明采用采用的JavaScript编程语言来实现小票内容解析脚本,避免了在不同的操作系统上开发多个版本的打印软件的繁琐性问题,极大程度上减轻了软件开发人员的工作负担。
步骤S120:获取打印设备的类型参数。
本实施例中,打印设备即为小票打印机。当打印软件通过无线网络或蓝牙连接小票打印机时,可以获得小票打印机的类型参数。其中,小票打印机的类型参数包括打印机的型号、打印机的打印纸宽度以及打印机的设备名字。打印机的型号可以为蓝牙打印机或网络打印机,蓝牙打印机通过蓝牙协议发送打印指令给打印机,网络打印机通过无线网络发送打印指令给打印机;打印机的打印纸宽度规格可以有58mm或80mm,这两者数据为市场常用的小票宽度,但由于不同型号的小票打印机可适用不同规格的小票打印纸,故在其他实施例中,打印纸宽度并不局限于这两种规格;每台小票打印机都有专属的名称,在通过无线网络或蓝牙连接上小票打印机时,便已唯一确定该小票打印机,同该打印机的型号、打印纸宽度信息一起将此类型参数匹配到打印软件中,以便于后续步骤中打印指令生成与发送。
步骤S130:获取小票的内容数据和样式参数。
在生成打印指令之前,打印软件会提前准备好小票的内容数据和样式参数,本实施例中,用于生成打印指令的小票内容数据和样式参数可通过请求服务端来获取,也可以通过在服务端更改来实现更改。
具体地,在本步骤中,打印软件可以通过向服务端请求来获取小票的内容数据,不同的小票内容数据皆通过服务端导入打印软件。当遇到需要更改小票的内容时,只需在服务端更改小票内容数据,即可在后续打印软件打印小票时获取最新的小票内容数据。小票的样式参数,在从服务端拉取后会以文件形式在打印软件中被缓存下来,并通过版本号管理。后续打印需要获取小票的样式参数时,可直接通过拉取缓存的这一版本的小票样式参数来获取,无需每次都从服务端拉取小票的样式参数,使得打印效率得到极大的提升。另外,当小票的样式需要变动时,可通过更改服务端的样式参数来实现。当服务端的样式参数被修改后,会通过推送消息告知打印软件;打印软件则会向服务端请求来获取最新的样式参数,并将它缓存下来,形成新版本的样式参数。后续使用打印软件打印小票时,打印软件直接选择该最新版本的样式参数。
本实施例的小票内容数据和样式参数的获取方法,让小票的显示样式和显示内容在需要变动的情况下得以实现灵活的变动,给用户带来极大的便捷性,避免了每次打印小票都需要导入样式参数的麻烦。
小票打印机是逐行进行打印的,一行即为一个基本显示单元,而小票的内容数据和样式参数也是以一行为基本单元的。关于小票的内容数据和样式参数具体指代的内容的描述,本实施例给出附图6中的小票样例,但其他实施例并不局限于附图6中所布局的小票图文。其中,小票的内容数据是指每一行需要显示的内容,这些需要显示的内容包括文字、图片、分割线、条形码和二维码,二维码以图片形式显示;在附图6中,图片210为某店铺的商标,可通过扫取条形码220来获得此小票的电子交易信息,文字230为此小票交易信息的纸质版文字描述,二维码250为该小票交易店铺的公众号,也是图片的显示,分割线240用于分隔小票上各部分信息的区域。每一行显示内容的样式是由字号、字体、对齐方式和尺寸等多个参数控制,如图片210的样式参数包括图片尺寸大小和居中对齐,条形码220包括尺寸大小和居中对齐,文字230的样式参数包括字体、字号和居左对齐等。在本步骤中,小票各个部分的显示内容的布局并不局限于本实施例所给的小票样例的布局,文字、图片、条形码和二维码所代表的内容也不局限于本实施例样例给出的代表内容,在其他实施例中可以根据具体的店铺需求而布局。
步骤S140:根据小票的内容数据和样式参数生成打印指令。
打印软件通过前面三个步骤已获得小票打印机的类型参数、小票的内容数据和样式参数,以及由JavaScript编程语言实现的小票内容解析脚本。后续生成打印指令的过程可分为附图2所示的两步操作:步骤S141,将小票打印机的类型参数、小票的内容数据和样式参数作为打印软件的输入,在准备好这三者数据时进入步骤S142,即人为选择开始按钮,使小票内容解析脚本开始执行并生成打印指令。
在完成打印指令生成之后,人为选择发送按钮,将此打印指令发送,而已通过无线网络或蓝牙与打印软件连接的小票打印机则会接收这个打印指令并开始下一步操作。
由于打印软件所在的设备不同,故在其他实施例中,小票内容解析脚本的执行方式也不同。如使用ios操作系统的苹果手机,可以通过系统提供的软件开发库JavaScriptCore来执行脚本;再如安卓操作系统可以使用J2V8引擎(谷歌公司提供的JavaScript引擎)来执行脚本;其他的操作系统也可以在网页浏览器中执行脚本。
由于脚本的代码逻辑是逐行来获取需要显示的内容和样式,再根据小票打印机的设备类型,生成小票打印机所对应的打印指令。故在其他实施例中,不同小票打印机的打印指令格式可能会存在差异。对于这些实施例,软件开发人员便会提前在小票内容解析脚本中根据小票打印机的接口协议去做打印指令适配,对于没有适配的小票打印机,小票内容解析脚本会返回没有适配的提示信息告知用户。
小票内容解析脚本的执行逻辑主要包括附图3所示的步骤:
步骤A1:在最开始时,打印软件先获取小票首行的内容数据和样式参数,根据显示类型的不同,生成对应的打印指令,并将该指令放入指令输出缓存区;
步骤A2:完成步骤A1后,接着去获取下一行的小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令拼接在前一条指令的后边;
步骤A3:重复步骤A2,直至完成所有数据的处理。
在这里,小票上内容的显示类型主要包括图片、文字、条形码和分割线四种。具体地,在本实施例中,附图5为本步骤中小票内容解析脚本的执行逻辑图,附图4为执行附图5的逻辑图的具体流程图,主要包括如下流程:
步骤B1:获取所在行的内容数据和样式参数;
步骤B2:判断是否是图片类型,若是,则先进行图片处理再生成图像指令,再将图像指令放入指令输出缓存区;若不是,则进入下一判断;
步骤B3:判断是否是条形码类型,若是,则生成条形码指令,再将条形码指令放入指令输出缓存区;若不是,则进入下一判断;
步骤B4:判断是否是分割线类型,若是,则生成分割线指令,再将分割线指令放入指令输出缓存区;若不是,则进入下一判断;
步骤B5:判断为是文字类型,生成文字指令,再将文字指令放入指令输出缓存区;
步骤B6:在指令输出缓存区中组装完打印指令后,判断是否还有行数据,若有,则继续按顺序执行步骤B1、步骤B2、步骤B3、步骤B4、步骤B5和步骤B6;若没有,则输出打印指令。
步骤S150:传输打印指令给打印设备并监控打印结果。
打印软件将步骤S140生成的打印指令发送小票打印机,并监控打印结果,如果遇到打印出错,会将错误原因告知用户,即可以通过弹窗的形式告知用户。其中,错误原因可以有打印纸空缺、硬件故障和打印机没墨等。
实施例二:
本发明还公开一种小票打印系统,通过实施例一中的小票打印方法来实现小票打印。本实施例包括前台工作模块、脚本数据更新模块、打印数据接收模块、打印指令生成模块和打印模块。
前台工作模块为能够直观显示打印内容给用户并帮助用户前台操控打印系统的模块。在本模块中,用户可以在前台工作模块导入小票的内容数据和样式参数,亦可在前台工作模块通过点击选择按钮来控制打印指令生成模块生成打印指令,且还可以通过可以点击选择按钮来控制打印指令的发送,让打印模块开始打印小票。这里的前台工作模块,根据用户使用的设备不同,可以有多种选择,如手机、平板、电脑等。用户可通过显示屏直观查看打印内容,还可以通过显示屏上的按钮选择控制打印指令的生成和发送。
脚本数据更新模块用于从网上下载新版本的小票内容解析脚本并实现脚本更新的模块。本模块通过通过网络下载来获取采用JavaScript编程语言编码的小票内容解析脚本。打印软件开启后,当通过连接网络而检测到有新的版本的小票内容解析脚本时,脚本数据更新模块自动下载新版本的小票内容解析脚本的更新包,并进行小票内容解析脚本的更新。其中,小票内容解析脚本具有文件版本号,不同的文件版本号代表不同的小票内容解析脚本。小票内容解析脚本的更新通过如下过程实现:脚本数据更新模块接收新的较高的文件版本号所代表的脚本内容覆盖原有较低的文件版本号所代表的脚本内容来实现脚本更新。即当通过网络接收到的新的文件版本号高于旧的文件版本号时,新的文件版本号所代表的脚本内容覆盖旧的文件版本号所代表的脚本内容,从而小票内容解析脚本发生更新,反之,当新的文件版本号不高于旧的文件版本号时,小票内容解析脚本不发生更新。
打印数据接收模块为系统中用于获取小票的内容数据和样式参数以及打印设备的类型参数的模块。本模块接收从前台工作模块导入的小票的内容数据和样式参数,同时也通过网络获取与之网络连接的打印模块中的小票打印机的类型参数,或者可以通过蓝牙获取与之蓝牙连接的小票打印机的类型参数。由于小票的内容数据和样式参数是通过前台工作模块导入小票打印系统,故在需要更改小票相关数据或需要打印不同内容小票时,可以通过在前台工作模块实现更改或变动,而从前台工作模块获取的样式参数会以文件形式缓存在系统中,在需要打印时,系统会拉取从前台工作模块导入的小票内容数据,以及直接拉取缓存文件中的小票样式参数,使得打印效率得到极大的提升。另外,当小票的内容数据和样式参数需要更改时,二者皆可在前台工作模块进行更改,系统会以推送消息的形式告知整个系统所在的打印软件,此时打印软件会去请求导入的新的样式参数,并再次将它缓存起来,在进行下一次操作时,系统直接从缓存下来的文件中拉取这个最新版本的样式参数。这种获取小票内容数据和样式参数的方法对于小票显示的内容和样式的变动提高了一定的灵巧性和便捷性。
打印指令生成模块为系统中用于生成打印指令的模块。本模块通过小票内容解析脚本的代码逻辑来解析打印数据接收模块所获取小票打印机类型参数、小票内容数据和样式参数,从而得到需要显示的小票的内容和样式,并根据打印模块的类型参数生成打印指令。这里的模块包括小票打印机,其类型参数包括打印机的型号、打印机的打印纸宽度以及打印机的设备名字。其中,打印指令生成模块主要用于解析小票内容解析脚本,即先获取首行小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令放入指令输出缓存区;再获取下一行的小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令拼接在前一条指令的后边;重复前述操作,直至完成所有数据的处理。
打印模块包括小票打印机,用于接收由打印指令生成模块生成并发送的打印指令,根据这个打印指令开始打印小票,同时还兼具监控打印结果的工作,如果遇到打印出错,会将错误原因通过弹窗的形式告知用户。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
总之,以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所作的均等变化与修饰,皆应属本发明专利的涵盖范围。
Claims (10)
1.一种小票打印方法,其特征在于:所述小票打印方法包括如下步骤:
S110:获取小票内容解析脚本;
S120:获取打印设备的类型参数;
S130:获取小票的内容数据和样式参数;
S140:根据小票的内容数据和样式参数生成打印指令;
S150:传输打印指令给打印设备并监控打印结果。
2.根据权利要求1所述的小票打印方法,其特征在于:
在所述步骤S110中,所述小票内容解析脚本通过JavaScript编程语言来实现,或通过网络获取由JavaScript编程语言实现的小票内容解析脚本。
3.根据权利要求2所述的打印方法,其特征在于:
所述小票内容解析脚本包括文件版本号,所述文件版本号为所述小票内容解析脚本的版本;
当通过网络接收到的新的文件版本号高于旧的文件版本号时,新的文件版本号所代表的脚本内容覆盖旧的文件版本号所代表的脚本内容,所述小票内容解析脚本发生更新;
当通过网络接收到的新的文件版本号不高于旧的文件版本号时,所述小票内容解析脚本维持原状而不发生更新。
4.根据权利要求1所述的小票打印方法,其特征在于:
在所述步骤S130中,从外部导入至服务端的小票内容数据和样式参数,通过服务端而实现更改;
从服务端获取的样式参数以文件形式缓存;
生成打印指令所需的小票内容数据通过所述服务端拉取,生成打印指令所需的小票样式参数通过所述缓存的样式参数的文件而获取。
5.根据权利要求1所述的小票打印方法,其特征在于:
所述步骤S140包括如下子步骤:
S141:根据打印设备的类型参数、小票的内容数据和样式参数执行小票内容解析脚本的解析;
S142:在完成所述小票内容解析脚本的解析之后生成打印设备的打印指令。
6.根据权利要求5所述的小票打印方法,其特征在于:
所述小票内容解析脚本的执行还包括如下子步骤:
A1:获取首行小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令放入指令输出缓存区;
A2:获取下一行的小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令拼接在前一条指令的后边;
A3:重复子步骤A2,直至完成所有数据的处理。
7.一种小票打印系统,包括前台工作模块、脚本数据更新模块、打印数据接收模块、打印指令生成模块和打印模块,其特征在于:
所述前台工作模块,供导入需要打印的小票的内容数据和样式参数,控制所述打印指令生成模块生成打印指令,控制所述打印模块打印小票;
所述脚本数据更新模块通过JavaScript编程语言实现小票内容解析脚本的编码;
所述打印数据接收模块接收所述前台工作模块导入的小票的内容数据和样式参数,以及获取所述打印模块的类型参数;
所述打印指令生成模块通过所述小票内容解析脚本的代码逻辑来解析所述打印数据接收模块获取的数据,获取需要显示的小票的内容和样式,并根据所述打印模块的类型参数生成打印指令;
所述打印模块接收所述打印指令并打印小票。
8.根据权利要求7所述的小票打印系统,其特征在于:
所述小票内容解析脚本包括文件版本号,所述文件版本号代表所述小票内容解析脚本的版本;
所述脚本数据更新模块可以通过网络下载来获取小票内容解析脚本;
所述小票内容解析脚本的更新通过所述脚本数据更新模块接收新的较高的文件版本号所代表的脚本内容覆盖原有较低的文件版本号所代表的脚本内容来实现。
9.根据权利要求7所述的小票打印系统,其特征在于:
小票的内容数据和样式参数通过前台工作模块导入小票打印系统,并通过在前台工作模块实现更改;
从前台工作模块获取的样式参数以文件形式缓存在系统;
所述打印数据接收模块从前台工作模块获取小票的内容数据,从缓存的样式参数的文件获取小票的样式参数。
10.根据权利要求7所述的小票打印系统,其特征在于:
所述打印指令生成模块用于:
先获取首行小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令放入指令输出缓存区;再获取下一行的小票内容数据和样式参数,根据不同的显示类型,生成对应的打印指令,并将所述打印指令拼接在前一条指令的后边;重复前述操作,直至完成所有数据的处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910744682.XA CN110459022A (zh) | 2019-08-13 | 2019-08-13 | 一种小票打印系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910744682.XA CN110459022A (zh) | 2019-08-13 | 2019-08-13 | 一种小票打印系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110459022A true CN110459022A (zh) | 2019-11-15 |
Family
ID=68486226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910744682.XA Pending CN110459022A (zh) | 2019-08-13 | 2019-08-13 | 一种小票打印系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110459022A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112677659A (zh) * | 2020-12-22 | 2021-04-20 | 厦门喵宝科技有限公司 | 一种便携式智能打印装置的控制方法及打印装置 |
CN113590057A (zh) * | 2021-08-02 | 2021-11-02 | 上海微盟企业发展有限公司 | 一种自定义小票打印方法、引擎、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477500A (zh) * | 2002-08-19 | 2004-02-25 | 万达信息股份有限公司 | 一种Client/Server架构下软件自动升级更新的方法 |
CN101477733A (zh) * | 2008-12-31 | 2009-07-08 | 深圳市奥拓电子有限公司 | 一种票据打印系统 |
CN103164907A (zh) * | 2011-12-14 | 2013-06-19 | 航天信息股份有限公司 | 票据解析装置和税控系统 |
CN105096172A (zh) * | 2015-06-12 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 基于电子商务平台的电子发票的生成和处理方法及系统 |
CN106406775A (zh) * | 2016-08-31 | 2017-02-15 | 无锡雅座在线科技发展有限公司 | 账单的打印方法和装置 |
CN106445426A (zh) * | 2016-08-31 | 2017-02-22 | 深圳市华阳信通科技发展有限公司 | 基于打印驱动的文本数据采集与打印控制方法及系统 |
CN107122145A (zh) * | 2017-03-22 | 2017-09-01 | 深圳点点科技有限公司 | 一种网络订单的本地打印方法和系统 |
CN107391657A (zh) * | 2017-07-18 | 2017-11-24 | 百望电子发票数据服务有限公司 | 一种生成电子发票版式文件的方法及系统 |
JP2019046431A (ja) * | 2017-09-01 | 2019-03-22 | カシオ計算機株式会社 | 売上データ処理装置、売上データ処理方法、および、売上データ処理プログラム |
-
2019
- 2019-08-13 CN CN201910744682.XA patent/CN110459022A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477500A (zh) * | 2002-08-19 | 2004-02-25 | 万达信息股份有限公司 | 一种Client/Server架构下软件自动升级更新的方法 |
CN101477733A (zh) * | 2008-12-31 | 2009-07-08 | 深圳市奥拓电子有限公司 | 一种票据打印系统 |
CN103164907A (zh) * | 2011-12-14 | 2013-06-19 | 航天信息股份有限公司 | 票据解析装置和税控系统 |
CN105096172A (zh) * | 2015-06-12 | 2015-11-25 | 北京京东尚科信息技术有限公司 | 基于电子商务平台的电子发票的生成和处理方法及系统 |
CN106406775A (zh) * | 2016-08-31 | 2017-02-15 | 无锡雅座在线科技发展有限公司 | 账单的打印方法和装置 |
CN106445426A (zh) * | 2016-08-31 | 2017-02-22 | 深圳市华阳信通科技发展有限公司 | 基于打印驱动的文本数据采集与打印控制方法及系统 |
CN107122145A (zh) * | 2017-03-22 | 2017-09-01 | 深圳点点科技有限公司 | 一种网络订单的本地打印方法和系统 |
CN107391657A (zh) * | 2017-07-18 | 2017-11-24 | 百望电子发票数据服务有限公司 | 一种生成电子发票版式文件的方法及系统 |
JP2019046431A (ja) * | 2017-09-01 | 2019-03-22 | カシオ計算機株式会社 | 売上データ処理装置、売上データ処理方法、および、売上データ処理プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112677659A (zh) * | 2020-12-22 | 2021-04-20 | 厦门喵宝科技有限公司 | 一种便携式智能打印装置的控制方法及打印装置 |
CN113590057A (zh) * | 2021-08-02 | 2021-11-02 | 上海微盟企业发展有限公司 | 一种自定义小票打印方法、引擎、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106484622B (zh) | 测试方法、装置及系统 | |
US10664651B2 (en) | Forms conversion and deployment system for mobile devices | |
CN104321746B (zh) | 应用文件的分发 | |
CN100520716C (zh) | 一种基于模型组件的代码自动生成装置、系统及方法 | |
CN104899031B (zh) | 物流数据生成方法和装置以及物流客户端配置方法和装置 | |
CN108733499A (zh) | 浏览器页面展示数据处理方法及装置 | |
CN106528006A (zh) | 一种页面打印方法及装置 | |
JP4913777B2 (ja) | Webページ配信システム | |
CN104717179B (zh) | 一种通信业务的处理方法及装置 | |
CN108228119A (zh) | 基于hxml的打印方法、终端设备及存储介质 | |
US20170109104A1 (en) | Multiple platform printer configuration | |
CN101009007A (zh) | 用于电信的综合电子交易业务系统和实现方法 | |
CN109697071A (zh) | 安装包合成方法、装置、终端及存储介质 | |
CN110459022A (zh) | 一种小票打印系统及方法 | |
CN103597481A (zh) | 嵌入式查询制定服务 | |
US6889202B2 (en) | Internet print device font distribution method and web site | |
US20140006193A1 (en) | Retail equipment | |
CN107273172A (zh) | 一种基于业务包的数据处理系统、方法及装置 | |
CN103139281A (zh) | 个性化印刷系统及其控制方法 | |
CN108614686A (zh) | 画面信息生成装置、画面信息生成方法及记录介质 | |
CN104965720B (zh) | 应用安装方法和装置 | |
CN106981146A (zh) | 一种基于多金税盘的开票方法 | |
CN104320469B (zh) | 一种基于svn的增量变化数据分析下载方法及系统 | |
CN113126991A (zh) | 业务数据处理方法及装置 | |
CN111813383A (zh) | 基于rap技术的银行综合前端系统 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191115 |