一种基于POS机的矢量字体打印方法及POS机与流程

文档序号:17932400发布日期:2019-06-15 01:00阅读:673来源:国知局
一种基于POS机的矢量字体打印方法及POS机与流程

本发明涉及pos机技术领域,尤其涉及一种基于pos机的矢量字体打印方法及pos机。



背景技术:

pos(pointofsale,销售终端)机,是一种配有条码或ocr(opticalcharacterrecognition,光学字符识别)码技术终端阅读器,具有现金或易货额度出纳功能。

pos机的基本原理,包括:

pos机先将商品资料创建于计算机文件内,透过计算机收银机联机架构,商品上之条码能透过收银设备上光学读取设备直接读入后,马上可以显示商品信息加速收银速度与正确性。pos机中的每笔商品销售明细资料自动记录下来,再由联机架构传回计算机,经由计算机计算处理即能生成各种销售统计分析信息当为经营管理依据。

现有的pos机上主要使用热敏打印机,采用的是传统的点阵字体打印方式。

但是,发明人发现现有技术中至少存在如下问题:

1、现有的pos机一般是使用热敏打印机采用传统的点阵字体打印方式,但是点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下,强行缩放会导致文字失真变形,产生边缘锯齿,打印效果一般。

2、现有的pos机一般是使用热敏打印机采用传统的点阵字体打印方式,在打印不同字体大小、不同语言的文字时,需要针对特定的语言及字体大小存储多份字体文件,使用上不灵活,且浪费存储空间。



技术实现要素:

有鉴于此,本发明的目的在于提出一种基于pos机的矢量字体打印方法及pos机,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

根据本发明的一个方面,提供一种基于pos机的矢量字体打印方法,包括:

pos机采用矢量字体方式,传入待打印的矢量字体字符串;

对所述传入的待打印的矢量字体字符串进行预处理;

加载所述经预处理后的矢量字体字符串对应的矢量字体文体,并设置所述加载的矢量字体文体中矢量字体的大小;

导入对应所述设置的矢量字体的大小的当前需要打印的单个矢量字体字符;

获取所述导入的单个矢量字体字符的轮廓;

将所述获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图;

对所述变换得到的单个矢量字体字符的黑白位图进行压缩;

计算当前单个矢量字体字符的偏移,按所述计算出的偏移将所述经压缩后的单个矢量字体字符的黑白位图数据存入缓存区;

按所述对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对所述处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按所述计算出的偏移将所述经压缩后的所有矢量字体字符的黑白位图数据存入缓存区;

将所述缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列;

打印所述打印队列的信息。

其中,所述pos机对所述传入的待打印的矢量字体字符串进行预处理,包括:

pos机采用将矢量字体字符串的编码由标准万国码转换为32位元编码码位的万国码的方式,对所述传入的待打印的矢量字体字符串进行预处理。

其中,所述pos机获取所述导入的单个矢量字体字符的轮廓,包括:

pos机采用先对所述导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从所述经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,获取所述导入的单个矢量字体字符的轮廓。

其中,所述pos机对所述变换得到的单个矢量字体字符的黑白位图进行压缩,包括:

pos机按每8个像素压缩到1字节的方式,对所述变换得到的单个矢量字体字符的黑白位图进行压缩。

其中,在所述pos机打印所述打印队列的信息之后,还包括:

pos机备份所述打印队列。

根据本发明的另一个方面,提供一种pos机,包括:

传入模块、预处理模块、加载模块、导入模块、获取模块、变换模块、压缩模块、存储模块、处理模块、放置模块和打印模块;

所述传入模块,用于采用矢量字体方式,传入待打印的矢量字体字符串;

所述预处理模块,用于对所述传入的待打印的矢量字体字符串进行预处理;

所述加载模块,用于加载所述经预处理后的矢量字体字符串对应的矢量字体文体,并设置所述加载的矢量字体文体中矢量字体的大小;

所述导入模块,用于导入对应所述设置的矢量字体的大小的当前需要打印的单个矢量字体字符;

所述获取模块,用于获取所述导入的单个矢量字体字符的轮廓;

所述变换模块,用于将所述获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图;

所述压缩模块,用于对所述变换得到的单个矢量字体字符的黑白位图进行压缩;

所述存储模块,用于计算当前单个矢量字体字符的偏移,按所述计算出的偏移将所述经压缩后的单个矢量字体字符的黑白位图数据存入缓存区;

所述处理模块,用于按所述对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对所述处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按所述计算出的偏移将所述经压缩后的所有矢量字体字符的黑白位图数据存入缓存区;

所述放置模块,用于将所述缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列;

所述打印模块,用于打印所述打印队列的信息。

其中,所述预处理模块,具体用于:

采用将矢量字体字符串的编码由utf-标准万国码转换为utf-的位元编码码位的万国码的方式,对所述传入的待打印的矢量字体字符串进行预处理。

其中,所述获取模块,具体用于:

采用先对所述导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从所述经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,获取所述导入的单个矢量字体字符的轮廓。

其中,所述压缩模块,具体用于:

按每个像素压缩到字节的方式,对所述变换得到的单个矢量字体字符的黑白位图进行压缩。

其中,所述pos机,还包括:

备份模块,用于备份所述打印队列。

可以发现,以上方案,pos机可以采用矢量字体方式,传入待打印的矢量字体字符串,进而对该传入的待打印的矢量字体字符串进行预处理,进而加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小,进而导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符,进而获取该导入的单个矢量字体字符的轮廓,进而将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图,进而对该变换得到的单个矢量字体字符的黑白位图进行压缩,进而计算当前单个矢量字体字符的偏移,按该计算出的偏移将该经压缩后的单个矢量字体字符的黑白位图数据存入缓存区,进而按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区,进而将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列,进而打印该打印队列的信息,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

进一步的,以上方案,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明基于pos机的矢量字体打印方法一实施例的流程示意图;

图2是本发明基于pos机的矢量字体打印方法另一实施例的流程示意图;

图3是本发明pos机一实施例的结构示意图;

图4是本发明pos机另一实施例的结构示意图;

图5是本发明pos机又一实施例的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明提供一种基于pos机的矢量字体打印方法,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

请参见图1,图1是本发明基于pos机的矢量字体打印方法一实施例的流程示意图。需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限。如图1所示,该方法包括如下步骤:

s101:pos机采用矢量字体方式,传入待打印的矢量字体字符串。

s102:pos机对该传入的待打印的矢量字体字符串进行预处理。

其中,该pos机对该传入的待打印的矢量字体字符串进行预处理,可以包括:

pos机采用将矢量字体字符串的编码由utf-8(8-bitunicodetransformationformat,标准万国码)转换为utf-32(32-unicodetransformationformats,32位元编码码位的万国码)的方式,对该传入的待打印的矢量字体字符串进行预处理。

s103:pos机加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小。

s104:pos机导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符。

s105:pos机获取该导入的单个矢量字体字符的轮廓。

其中,该pos机获取该导入的单个矢量字体字符的轮廓,可以包括:

pos机采用先对该导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从该经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,获取该导入的单个矢量字体字符的轮廓。

s106:pos机将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图。

s107:pos机对该变换得到的单个矢量字体字符的黑白位图进行压缩。

其中,该pos机对该变换得到的单个矢量字体字符的黑白位图进行压缩,可以包括:

pos机按每8个像素压缩到1字节的方式,对该变换得到的单个矢量字体字符的黑白位图进行压缩。

s108:pos机计算当前单个矢量字体字符的偏移,按该计算出的偏移将该经压缩后的单个矢量字体字符的黑白位图数据存入缓存区。

s109:pos机按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区。

s110:pos机将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列。

s111:pos机打印该打印队列的信息。

其中,在该pos机打印该打印队列的信息之后,还可以包括:

pos机备份该打印队列。

可以发现,在本实施例中,pos机可以采用矢量字体方式,传入待打印的矢量字体字符串,进而对该传入的待打印的矢量字体字符串进行预处理,进而加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小,进而导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符,进而获取该导入的单个矢量字体字符的轮廓,进而将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图,进而对该变换得到的单个矢量字体字符的黑白位图进行压缩,进而计算当前单个矢量字体字符的偏移,按该计算出的偏移将该经压缩后的单个矢量字体字符的黑白位图数据存入缓存区,进而按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区,进而将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列,进而打印该打印队列的信息,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

请参见图2,图2是本发明基于pos机的矢量字体打印方法另一实施例的流程示意图。本实施例中,该方法包括以下步骤:

s201:pos机采用矢量字体方式,传入待打印的矢量字体字符串。

s202:pos机对该传入的待打印的矢量字体字符串进行预处理。

可如上s102所述,在此不作赘述。

s203:pos机加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小。

s204:pos机导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符。

s205:pos机获取该导入的单个矢量字体字符的轮廓。

可如上s105所述,在此不作赘述。

s206:pos机将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图。

s207:pos机对该变换得到的单个矢量字体字符的黑白位图进行压缩。

可如上s107所述,在此不作赘述。

s208:pos机计算当前单个矢量字体字符的偏移,按该计算出的偏移将该经压缩后的单个矢量字体字符的黑白位图数据存入缓存区。

s209:pos机按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区。

s210:pos机将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列。

s211:pos机打印该打印队列的信息。

s212:pos机备份该打印队列。

可以发现,在本实施例中,pos机可以备份打印队列,能够实现pos机能备份打印队列,在需要应用到该打印队列时,能从该备份数据中还原出该打印队列,方便用户使用该打印队列,提高了用户体验。

本发明还提供一种pos机,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

请参见图3,图3是本发明pos机一实施例的结构示意图。本实施例中,该pos机30为上述实施例中的pos机,该pos机30包括传入模块31、预处理模块32、加载模块33、导入模块34、获取模块35、变换模块36、压缩模块37、存储模块38、处理模块39、放置模块310和打印模块311。

该传入模块31,用于采用矢量字体方式,传入待打印的矢量字体字符串。

该预处理模块32,用于对该传入的待打印的矢量字体字符串进行预处理。

该加载模块33,用于加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小。

该导入模块34,用于导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符。

该获取模块35,用于获取该导入的单个矢量字体字符的轮廓。

该变换模块36,用于将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图。

该压缩模块37,用于对该变换得到的单个矢量字体字符的黑白位图进行压缩。

该存储模块38,用于计算当前单个矢量字体字符的偏移,按该计算出的偏移将该经压缩后的单个矢量字体字符的黑白位图数据存入缓存区。

该处理模块39,用于按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区。

该放置模块310,用于将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列。

该打印模块311,用于打印该打印队列的信息。

可选地,该预处理模块32,可以具体用于:

采用将矢量字体字符串的编码由utf-8标准万国码转换为utf-32的32位元编码码位的万国码的方式,对该传入的待打印的矢量字体字符串进行预处理。

可选地,该获取模块35,可以具体用于:

采用先对该导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从该经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,获取该导入的单个矢量字体字符的轮廓。

可选地,该压缩模块37,可以具体用于:

按每8个像素压缩到1字节的方式,对该变换得到的单个矢量字体字符的黑白位图进行压缩。

请参见图4,图4是本发明pos机另一实施例的结构示意图。区别于上一实施例,本实施例所述pos机40还包括:备份模块41。

该备份模块41,用于备份该打印队列。

该pos机30/40的各个单元模块可分别执行上述方法实施例中对应步骤,故在此不对各单元模块进行赘述,详细请参见以上对应步骤的说明。

请参见图5,图5是本发明pos机又一实施例的结构示意图。该pos机的各个单元模块可以分别执行上述方法实施例中对应步骤。相关内容请参见上述方法中的详细说明,在此不再赘叙。

本实施例中,该pos机包括:处理器51、与该处理器51耦合的存储器52、打印器53、备份器54。

该处理器51,用于采用矢量字体方式,传入待打印的矢量字体字符串,和对该传入的待打印的矢量字体字符串进行预处理,和加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小,和导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符,和获取该导入的单个矢量字体字符的轮廓,和将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图,和对该变换得到的单个矢量字体字符的黑白位图进行压缩,和按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区,和将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列。

该存储器52,用于存储操作系统、该处理器51执行的指令等。

该打印器53,用于打印该打印队列的信息。

该备份器54,用于备份该打印队列。

可选地,该处理器51,可以具体用于:

采用将矢量字体字符串的编码由utf-8标准万国码转换为utf-32的32位元编码码位的万国码的方式,对该传入的待打印的矢量字体字符串进行预处理。

可选地,该处理器51,可以具体用于:

采用先对该导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从该经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,获取该导入的单个矢量字体字符的轮廓。

可选地,该处理器51,可以具体用于:

按每8个像素压缩到1字节的方式,对该变换得到的单个矢量字体字符的黑白位图进行压缩。

可以发现,以上方案,pos机可以采用矢量字体方式,传入待打印的矢量字体字符串,进而对该传入的待打印的矢量字体字符串进行预处理,进而加载该经预处理后的矢量字体字符串对应的矢量字体文体,并设置该加载的矢量字体文体中矢量字体的大小,进而导入对应该设置的矢量字体的大小的当前需要打印的单个矢量字体字符,进而获取该导入的单个矢量字体字符的轮廓,进而将该获取到的单个矢量字体字符的轮廓变换为单个矢量字体字符的黑白位图,进而对该变换得到的单个矢量字体字符的黑白位图进行压缩,进而计算当前单个矢量字体字符的偏移,按该计算出的偏移将该经压缩后的单个矢量字体字符的黑白位图数据存入缓存区,进而按该对单个矢量字体字符的处理方式,处理得到所有矢量字体字符的黑白位图,并对该处理得到的所有矢量字体字符的黑白位图进行压缩,以及计算当前所有矢量字体字符的偏移,按该计算出的偏移将该经压缩后的所有矢量字体字符的黑白位图数据存入缓存区,进而将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,放置到打印队列,进而打印该打印队列的信息,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

进一步的,以上方案,能够实现pos机能采用矢量字体打印方式进行打印,而矢量字体同一个字体文件可以包含多种不同语言,无需存储多份字体文件,且矢量字体大小可以自由设置,无需对字体进行缩放,字体使用灵活,打印效果好,打印效率高。

在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。

另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1