本申请涉及打印技术领域,尤其涉及一种html动态填充数据打印指令生成方法、系统和打印机。
背景技术:
现有技术物流行业中,电子面单、电子包牌、提货码等打场景,打印方式多为打印前依据打印模板动态填充参数渲染并组装打印指令,再将打印指令交打印机执行完成,即直接将打印模板填充参数渲染,转打印机指令执行,但由于大多数小型打印机厂家打印指令并不完全统一,导致打印效果会有差异。
技术实现要素:
本申请提供一种html动态填充数据打印指令生成方法、系统和打印机,以解决在物流行业打印领域,由于不同小型打印机内部打印指令不同,导致的相同内容打印实际效果不同的问题。
本申请的上述目的是通过以下技术方案来实现的:
第一方面,本申请实施例提供一种html动态填充数据打印指令生成方法,包括:
接收外部传统打印模板,并基于预设对照协议文件将所述传统打印模板转换为html格式中间模板;
接收外部打印数据,并将所述打印数据填充至所述html格式中间模板中,生成html打印文件;
输出所述html打印文件,供外部打印机进行打印。
可选的,所述预设对照协议文件包括一套传统打印模板转换html打印模板协议和一套html显示打印元素;
所述显示打印元素包括:文本、图形、二维码、条形码、横线、竖线、自定义方框和水印。
可选的,还包括:
将所述html打印文件进行渲染生成待打印图片;
所述待打印图片用于供不支持html格式文件的打印机进行打印。
可选的,所述打印数据包括电子面单单号和收发件地址。
可选的,还包括:
将所述html打印文件发送至标准web浏览器,供使用者预览打印效果。
第二方面,本申请实施例提供一种html动态填充数据打印指令生成系统,包括:接收模块、模板解析模块、数据填充模块和输出模块;
所述接收模块用于接收对照协议文件、外部传统打印模板和外部打印数据,并将所述对照协议文件和所述外部打印数据传输至所述模板解析模块中,以及将所述外部打印数据传输至所述数据填充模块中;其中,所述对照协议文件包括传统打印模板与标准html打印模板对照协议;
所述模板解析模块用于基于所述对照协议将所述外部传统打印模板转换为html格式中间模板;
所述数据填充模块用于将所述外部打印数据填充至所述html格式中间模板中,生成html打印文件;
所述输出模块用于输出所述html打印文件,供外部打印机进行打印。
可选的,还包括html图片转换模块;
所述html图片转换模块用于将所述html打印文件生成可直接打印的图片,供不支持html格式的外部打印机进行打印。
可选的,所述输出模块还用于将所述html打印文件输出至浏览器,供使用者进行打印预览。
第三方面,本申请提供一种html动态填充数据打印指令生成打印机,包括如本申请上述实施例提供的任一一种所述基于html动态填充打印数据渲染的打印指令生成系统和打印机主体。
第四方面,本申请实施例提供一种存储介质,所述存储介质储存计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-5任一一项所述html动态填充数据打印指令生成方法。
本申请的实施例提供的技术方案可以包括以下有益效果:
本申请的实施例提供的技术方案中,通过将传统的外部打印模板基于预设的打印模板与标准html模板对照协议,将传统的外部打印模板转换为html格式中间打印模板,再将接收到的包括电子面单、收发货地址等打印数据在该中间模板中进行填充,生成最终的html格式的打印文件,将该文件输出,供打印机进行打印,因为在css3标准下,html打印与机器无关的,与系统无关,并且预览效果与实际效果也是一致的,从而保证该方案能在不同设备、系统中进行打印,并且实际打印效果在任何系统任何设备上全部一致,从而解决了现有技术中由于不同小型打印机内部打印指令不同,导致的相同内容打印实际效果不同的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例示出的一种html动态填充数据打印指令生成方法的流程示意图;
图2为为本申请实施例示出的一种html动态填充数据打印指令生成系统的结构示意图;
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
传统打印技术中,都是直接将打印模板填充参数渲染,转打印机指令执行,但由于不同打印机厂家打印指令集不同,所以在渲染打印效果时需要面向不同打印指令分类处理,工作量极大,扩展性差;同时,即使同厂商打印机在执行相同打印指令时也可能会有少量偏差,例如字体、打印边距等,整体精确度不足,而且当遇到对应某些打印机无法支持的指令,打印效果无法保证,如某些字体字号、水印效果等,可能在某些打印机上没有打印指令支持导致实际效果无法保证。
为了解决上述问题,本申请实施例提供一种html动态填充数据打印指令生成方法,以下将通过实施例对本申请的方案进行详细说明。
实施例
参照图1,图1为本申请实施例示出的一种html动态填充数据打印指令生成方法的流程示意图。如图1所示,该方法包括:
s101,接收外部传统打印模板,并基于预设对照协议文件将所述传统打印模板转换为html格式中间模板;
具体的,需要打印内容的通用打印模板,一般是以xml或json进行描述的,即xml或json格式的代码。例如,一个寄件码打印模板预览效果即打印出来的图片一般包括二维码以及相关条形码,其中条形码和二维码只是预览效果,实际打印时,每次将替换成实际传输的打印数据,该数据具体包括xml或json格式的打印页面描述信息、打印元素集合以及包括横线等打印元素。
在接收外部传统打印模板后,基于预设的对照协议文件将xml或json格式的文件进行转换,转换为html格式的文件;其中,对照协议文件包括一套定义打印模板如何转化html模板的协议即打印模板与标准html模板对照协议,以及一套html显示常用打印元素内容,其中包括常见的打印元素,例如文本、图形、二维码、条形码、横线、竖线、自定应方框、水印等。
实际应用中,该对照协议文件可能包括多个文件,分别在对外部打印模板进行转换格式进行规定,例如basetemplate.html、boxdivtemplate.html、imgdivtenplate.html、qrcodedivtemplate.html、textdivtemplate.backup.html、textdivtemplate.html、xbarcodedivtemplate.html、xlinedivtemplate.html、ybarcodedivtemplate.html、ylinedivtemplate.html等文件,与xml或json格式的打印模板在转换过程中进行对照,根据该对照协议,通过预设的模板解析器将外部传统的打印模板准换为html格式中间模板,完成格式转换。另外该部分的文件也可以根据实际需求进行后续的添加和完善,从而好的实现转换。
s102,接收外部打印数据,并将所述打印数据填充至所述html格式中间模板中,生成html打印文件;
具体的,虽然打印模板是打印前就统一确定的,但是打印的数据,例如打印的电子面单单号、打印的收发件地址等是在打印时才传入的,包括电子面单单号、收发件地址等信息的打印数据一般传入格式也以json格式描述,即json代码,将这些打印数据通过预设的数据填充器对应填充到上述步骤生成的html格式中间模板中,生成html打印文件。
需要说明的是,为了方便说明,上述是以一个电子面单的例子进行说明的,而实际应用中,打印模板、打印数据并不局限与只是电子面单,也可以对物流行业的其他打印模板、打印数据,以满足更多打印作业需求。
s103、输出所述html打印文件,供外部打印机进行打印。
具体的,生成的html打印文件,外部打印机可以直接进行打印,通过将外部打印模板转换填充生成html格式打印文件,对html格式打印文件进行打印,解决了现有技术中,因为不同打印机厂家打印指令集不同,在渲染打印效果时需要面向不同打印指令分类处理,工作量极大,扩展性差的问题,同时因为html格式下,没种打印类型都有其对应元素,并且在css3标准下,html预览效果是确定统一的,与机器无关的,与系统无关,所以,可以在操作层面屏蔽打印指令细节的同时,还能保证打印精确度。在打印模板转换为html格式的打印模板后,实际打印出的结果在任何系统任何设备上全部一致,从而解决了现有技术中,由于不同小型打印机内部打印指令不同,导致的相同内容打印实际效果不同的问题。
进一步的,本申请实施例提供的html动态填充数据打印指令生成方法,还包括将所述html打印文件进行渲染生成待打印图片,供不支持html格式文件的打印机进行打印。
在实际应用中,一般打印机都支持html格式的文件打印,但也有少部分的打印机不支持,所以本方法还包括将生成的html格式的打印文件通过预设的html图片转换器转换为图片,html打印文件经渲染后生产如png格式的图片,供不支持html文件打印的打印机直接打印图片,从而保证经转换过的文件适合所以类型的打印机,因为html文件转换为图片的规则是固定的,而且对于图片的打印效果也是固定的,所以不同的打印机对于该图片的打印,打印效果也是相同的,从而保证在所有机器下,打印出的效果都是相同的。
另外,本申请实施例提供的html动态填充数据打印指令生成方法还包括将生成的html打印文件发送至标准web浏览器,通过标准的web浏览器直接预览最终的打印效果,供使用者预览打印效果。
基于同一个发明构思,本申请实施例还一种html动态填充数据打印指令生成系统,图2是本申请实施例提供的html动态填充数据打印指令生成系统的结构示意图,如图2所示:
本申请实施例提供的html动态填充数据打印指令生成系统包括:接收模块、模板解析模块、数据填充模块和输出模块;
所述接收模块用于接收对照协议文件、外部打印模块和外部打印数据,并将所述对照协议文件和所述外部打印数据传输至所述模板解析模块中,以及将所述外部打印数据传输至所述数据填充模块中;其中,所述对照协议文件包括打印模板与标准html模板对照协议。
所述模板解析模块包括模板解析器,用于基于所述对照协议将所述外部打印模板转换为html中间模板。
需要说明的是,模板解析器除了对外部打印模板进行解析,并基于对照协议生成html格式中间模板外,也可以集成接收模块的功能,直接由模板解析器接收数据,然后进行解析,从而省去接收模块。
所述数据填充模块包括数据填充器,用于将所述外部打印数据填充至所述html中间模板中,生成html打印文件;
所述输出模块用于输出所述html打印文件,供外部打印机进行打印,以及将系统生成的html打印文件输出至浏览器,通过浏览器对最终打印结果进行显示预览,供使用者进行打印预览。需要说明的是所述数据填充器采用python编写,同时也可以集成输出模块的功能,直接接收外部打印数据并进行填充,从而使系统省去输出模块。
进一步的,本申请实施例提供的html动态填充数据打印指令生成系统,还包括html图片转换模块,该模块包括html图片转换器,该图片转换器也是基于python实现的,在开放的python内置无图浏览器内核上二次开发实现,用于将所述html打印文件生成可直接打印的图片,供不支持html格式的外部打印机进行打印。
另外,本申请实施例提供的html动态填充数据打印指令生成系统,还包括配置管理模块,该模块包括配置管理器,进行全局配置,负责该系统的全局配置。
本申请提供的打印指令生成系统,各模块使用语言和开放协议包括python、json、html,使用html代替打印指令,因为html本身元素丰富,包含打印所需要样式元素,并且可以直接进行转换,避免将原模板针对不同设备、打印指令集进行不同编辑,转化过程中可以屏蔽打印指令细节的同时还能保证打印精确度,将打印模板转为一个无平台系统差异效果的内容直接打印,不会出现因指令异常而导致打印无法继续的问题,以及可以通过配置管理器进行全局配置,以及通过添加对照协议的方式,实现对各种打印模板的转换,扩展性高,在面对新的打印机接入时,工作量低;同时因为在css3协议下,打印效果是固定的,并且打印效果是与预览效果相同的,从而使生成的html打印文件在任何机器、系统上的打印效果都是相同的并且可以在打印之前进行预览,解决现有技术中,需要针对不同设备分别进行大量的编辑指令工作,并且由于不同打印机指令不同导致的打印实际效果不精确、不可靠、效果不统一,以及因打印模板需要进行各种转换,在各种转换后出现一些打印效果无法保证的问题。
基于同一个发明构思,本申请实施例还一种html动态填充数据打印指令生成打印机,包括如本申请上述实施例提供的基于html动态填充打印数据渲染的打印指令生成系统和打印机主体。
基于同一个发明构思,本申请实施例还提供一种存储介质,所述存储介质储存计算机程序,所述计算机程序被处理器执行时,实现如本申请上述实施例提供的html动态填充数据打印指令生成方法。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
1.一种html动态填充数据打印指令生成方法,其特征在于,包括:
接收外部传统打印模板,并基于预设对照协议文件将所述传统打印模板转换为html格式中间模板;
接收外部打印数据,并将所述打印数据填充至所述html格式中间模板中,生成html打印文件;
输出所述html打印文件,供外部打印机进行打印。
2.根据权利要求1所述的html动态填充数据打印指令生成方法,其特征在于,所述预设对照协议文件包括一套传统打印模板转换html打印模板协议和一套html显示打印元素;
所述显示打印元素包括:文本、图形、二维码、条形码、横线、竖线、自定义方框和水印。
3.根据权利要求1所述的html动态填充数据打印指令生成方法,其特征在于,还包括:
将所述html打印文件进行渲染生成待打印图片;
所述待打印图片用于供不支持html格式文件的打印机进行打印。
4.根据权利要求1所述的html动态填充数据打印指令生成方法,其特征在于,所述打印数据包括电子面单单号和收发件地址。
5.根据权利要求1所述的html动态填充数据打印指令生成方法,其特征在于,还包括:
将所述html打印文件发送至标准web浏览器,供使用者预览打印效果。
6.一种html动态填充数据打印指令生成系统,其特征在于,包括:接收模块、模板解析模块、数据填充模块和输出模块;
所述接收模块用于接收对照协议文件、外部传统打印模板和外部打印数据,并将所述对照协议文件和所述外部打印数据传输至所述模板解析模块中,以及将所述外部打印数据传输至所述数据填充模块中;其中,所述对照协议文件包括传统打印模板与标准html打印模板对照协议;
所述模板解析模块用于基于所述对照协议将所述外部传统打印模板转换为html格式中间模板;
所述数据填充模块用于将所述外部打印数据填充至所述html格式中间模板中,生成html打印文件;
所述输出模块用于输出所述html打印文件,供外部打印机进行打印。
7.根据权利要求6所述的html动态填充数据打印指令生成系统,其特征在于,还包括html图片转换模块;
所述html图片转换模块用于将所述html打印文件生成可直接打印的图片,供不支持html格式的外部打印机进行打印。
8.根据权利要求6所述的html动态填充数据打印指令生成系统,其特征在于,所述输出模块还用于将所述html打印文件输出至浏览器,供使用者进行打印预览。
9.一种html动态填充数据打印指令生成打印机,其特征在于,包括如权利要求6-8任一一项所述基于html动态填充打印数据渲染的打印指令生成系统和打印机主体。
10.一种存储介质,其特征在于,所述存储介质储存计算机程序,所述计算机程序被处理器执行时,实现如权利要求1-5任一一项所述html动态填充数据打印指令生成方法。
技术总结