CN109816896A - 一种基于pos机的多线程打印方法及pos机 - Google Patents
一种基于pos机的多线程打印方法及pos机 Download PDFInfo
- Publication number
- CN109816896A CN109816896A CN201811574218.2A CN201811574218A CN109816896A CN 109816896 A CN109816896 A CN 109816896A CN 201811574218 A CN201811574218 A CN 201811574218A CN 109816896 A CN109816896 A CN 109816896A
- Authority
- CN
- China
- Prior art keywords
- multithreading
- vector fonts
- pos machine
- black
- character
- 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
Landscapes
- Record Information Processing For Printing (AREA)
Abstract
本发明公开了一种基于POS机的多线程打印方法及POS机。其中,所述方法包括:POS机按对单个矢量字体字符的处理方式,多线程处理得到所有矢量字体字符的黑白位图并压缩,以及多线程计算当前所有矢量字体字符的偏移,按该偏移将该经多线程压缩后的所有矢量字体字符的黑白位图数据存入缓存区,将该缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,多线程放置到打印队列,多线程打印该打印队列的信息。通过上述方式,能够实现POS机能引入多线程机制优化矢量字体打印方式,打印流畅,打印速度快。
Description
技术领域
本发明涉及POS机技术领域,尤其涉及一种基于POS机的多线程打印方法及POS机。
背景技术
POS(Point Of Sale,销售终端)机,是一种配有条码或OCR(Optical CharacterRecognition,光学字符识别)码技术终端阅读器,具有现金或易货额度出纳功能。
POS机的基本原理,包括:
POS机先将商品资料创建于计算机文件内,透过计算机收银机联机架构,商品上之条码能透过收银设备上光学读取设备直接读入后,马上可以显示商品信息加速收银速度与正确性。POS机中的每笔商品销售明细资料自动记录下来,再由联机架构传回计算机,经由计算机计算处理即能生成各种销售统计分析信息当为经营管理依据。
现有的POS机上主要使用热敏打印机,可以采用点阵字体打印方式或采用矢量字体打印方式进行打印。但是点阵字体很难进行缩放,特定的点阵字体只能清晰地显示在相应的字号下,强行缩放会导致文字失真变形,产生边缘锯齿。现有的点阵字体打印方式在打印不同字体大小、不同语言的文字时,需要针对特定的语言及字体大小存储多份字体文件,使用上非常不灵活,且浪费存储空间。而现有的矢量字体打印方式中,矢量字体的同一个字体文件可以包含多种不同语言,矢量字体的大小可以自由设置,无需存储多份矢量字体文件或使用强制缩放算法。
但是,发明人发现现有技术中至少存在如下问题:
现有的POS机采用矢量字体打印方式进行打印时,矢量字体打印方式需要经过大量的数学运算来进行渲染,存在打印速度慢,打印过程有卡顿的的问题。
发明内容
有鉴于此,本发明的目的在于提出一种基于POS机的多线程打印方法及POS机,能够实现POS机能引入多线程机制优化矢量字体打印方式,打印流畅,打印速度快。
根据本发明的一个方面,提供一种基于POS机的多线程打印方法,包括:
POS机采用多线程矢量字体方式,传入待打印的矢量字体字符串;
对所述传入的待打印的矢量字体字符串进行多线程预处理;
多线程加载所述经多线程预处理后的矢量字体字符串对应的矢量字体文体,并设置所述多线程加载的矢量字体文体中矢量字体的大小;
多线程导入对应所述设置的矢量字体的大小的当前需要打印的单个矢量字体字符;
多线程获取所述多线程导入的单个矢量字体字符的轮廓;
将所述多线程获取到的单个矢量字体字符的轮廓多线程变换为单个矢量字体字符的黑白位图;
对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩;
多线程计算当前单个矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的单个矢量字体字符的黑白位图数据存入缓存区;
按所述对单个矢量字体字符的处理方式,多线程处理得到所有矢量字体字符的黑白位图,并对所述多线程处理得到的所有矢量字体字符的黑白位图进行多线程压缩,以及多线程计算当前所有矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的所有矢量字体字符的黑白位图数据存入缓存区;
将所述缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,多线程放置到打印队列;
多线程打印所述打印队列的信息。
其中,所述POS机对所述传入的待打印的矢量字体字符串进行多线程预处理,包括:
POS机采用将矢量字体字符串的编码由标准万国码转换为32位元编码码位的万国码的方式,对所述传入的待打印的矢量字体字符串进行多线程预处理。
其中,所述POS机多线程获取所述多线程导入的单个矢量字体字符的轮廓,包括:
POS机采用先对所述多线程导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从所述经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,多线程获取所述多线程导入的单个矢量字体字符的轮廓。
其中,所述POS机对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩,包括:
POS机按每8个像素压缩到1字节的方式,对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩。
其中,在所述POS机多线程打印所述打印队列的信息之后,还包括:
POS机备份所述打印队列。
根据本发明的另一个方面,提供一种POS机,包括:
传入模块、预处理模块、加载模块、导入模块、获取模块、变换模块、压缩模块、存储模块、处理模块、放置模块和打印模块;
所述传入模块,用于采用多线程矢量字体方式,传入待打印的矢量字体字符串;
所述预处理模块,用于对所述传入的待打印的矢量字体字符串进行多线程预处理;
所述加载模块,用于多线程加载所述经多线程预处理后的矢量字体字符串对应的矢量字体文体,并设置所述多线程加载的矢量字体文体中矢量字体的大小;
所述导入模块,用于多线程导入对应所述设置的矢量字体的大小的当前需要打印的单个矢量字体字符;
所述获取模块,用于多线程获取所述多线程导入的单个矢量字体字符的轮廓;
所述变换模块,用于将所述多线程获取到的单个矢量字体字符的轮廓多线程变换为单个矢量字体字符的黑白位图;
所述压缩模块,用于对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩;
所述存储模块,用于多线程计算当前单个矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的单个矢量字体字符的黑白位图数据存入缓存区;
所述处理模块,用于按所述对单个矢量字体字符的处理方式,多线程处理得到所有矢量字体字符的黑白位图,并对所述多线程处理得到的所有矢量字体字符的黑白位图进行多线程压缩,以及多线程计算当前所有矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的所有矢量字体字符的黑白位图数据存入缓存区;
所述放置模块,用于将所述缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,多线程放置到打印队列;
所述打印模块,用于多线程打印所述打印队列的信息。
其中,所述预处理模块,具体用于:
采用将矢量字体字符串的编码由UTF-标准万国码转换为UTF-的位元编码码位的万国码的方式,对所述传入的待打印的矢量字体字符串进行多线程预处理。
其中,所述获取模块,具体用于:
采用先对所述多线程导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从所述经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,多线程获取所述多线程导入的单个矢量字体字符的轮廓。
其中,所述压缩模块,具体用于:
按每个像素压缩到字节的方式,对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩。
其中,所述POS机,还包括:
备份模块,用于备份所述打印队列。
可以发现,以上方案,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-bit Unicode TransformationFormat,标准万国码)转换为UTF-32(32-Unicode transformation formats,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机可以备份打印队列,能够实现POS机能备份打印队列,在需要应用到该打印队列时,能从该备份数据中还原出该打印队列,方便用户使用该打印队列,提高了用户体验。
在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的部分实施例,并非因此限制本发明的保护范围,凡是利用本发明说明书及附图内容所作的等效装置或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种基于POS机的多线程打印方法,其特征在于,包括:
POS机采用多线程矢量字体方式,传入待打印的矢量字体字符串;
对所述传入的待打印的矢量字体字符串进行多线程预处理;
多线程加载所述经多线程预处理后的矢量字体字符串对应的矢量字体文体,并设置所述多线程加载的矢量字体文体中矢量字体的大小;
多线程导入对应所述设置的矢量字体的大小的当前需要打印的单个矢量字体字符;
多线程获取所述多线程导入的单个矢量字体字符的轮廓;
将所述多线程获取到的单个矢量字体字符的轮廓多线程变换为单个矢量字体字符的黑白位图;
对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩;
多线程计算当前单个矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的单个矢量字体字符的黑白位图数据存入缓存区;
按所述对单个矢量字体字符的处理方式,多线程处理得到所有矢量字体字符的黑白位图,并对所述多线程处理得到的所有矢量字体字符的黑白位图进行多线程压缩,以及多线程计算当前所有矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的所有矢量字体字符的黑白位图数据存入缓存区;
将所述缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,多线程放置到打印队列;
多线程打印所述打印队列的信息。
2.如权利要求1所述的基于POS机的多线程打印方法,其特征在于,所述POS机对所述传入的待打印的矢量字体字符串进行多线程预处理,包括:
POS机采用将矢量字体字符串的编码由标准万国码转换为32位元编码码位的万国码的方式,对所述传入的待打印的矢量字体字符串进行多线程预处理。
3.如权利要求1或2所述的基于POS机的多线程打印方法,其特征在于,所述POS机多线程获取所述多线程导入的单个矢量字体字符的轮廓,包括:
POS机采用先对所述多线程导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从所述经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,多线程获取所述多线程导入的单个矢量字体字符的轮廓。
4.如权利要求3所述的基于POS机的多线程打印方法,其特征在于,所述POS机对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩,包括:
POS机按每8个像素压缩到1字节的方式,对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩。
5.如权利要求4所述的基于POS机的多线程打印方法,其特征在于,在所述POS机多线程打印所述打印队列的信息之后,还包括:
POS机备份所述打印队列。
6.一种POS机,其特征在于,包括:
传入模块、预处理模块、加载模块、导入模块、获取模块、变换模块、压缩模块、存储模块、处理模块、放置模块和打印模块;
所述传入模块,用于采用多线程矢量字体方式,传入待打印的矢量字体字符串;
所述预处理模块,用于对所述传入的待打印的矢量字体字符串进行多线程预处理;
所述加载模块,用于多线程加载所述经多线程预处理后的矢量字体字符串对应的矢量字体文体,并设置所述多线程加载的矢量字体文体中矢量字体的大小;
所述导入模块,用于多线程导入对应所述设置的矢量字体的大小的当前需要打印的单个矢量字体字符;
所述获取模块,用于多线程获取所述多线程导入的单个矢量字体字符的轮廓;
所述变换模块,用于将所述多线程获取到的单个矢量字体字符的轮廓多线程变换为单个矢量字体字符的黑白位图;
所述压缩模块,用于对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩;
所述存储模块,用于多线程计算当前单个矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的单个矢量字体字符的黑白位图数据存入缓存区;
所述处理模块,用于按所述对单个矢量字体字符的处理方式,多线程处理得到所有矢量字体字符的黑白位图,并对所述多线程处理得到的所有矢量字体字符的黑白位图进行多线程压缩,以及多线程计算当前所有矢量字体字符的偏移,按所述多线程计算出的偏移将所述经多线程压缩后的所有矢量字体字符的黑白位图数据存入缓存区;
所述放置模块,用于将所述缓存区中存储的所有矢量字体字符的黑白位图数据与打印宽度、打印高度和打印偏移信息按指定格式组装后,多线程放置到打印队列;
所述打印模块,用于多线程打印所述打印队列的信息。
7.如权利要求6所述的POS机,其特征在于,所述预处理模块,具体用于:
采用将矢量字体字符串的编码由UTF-标准万国码转换为UTF-的位元编码码位的万国码的方式,对所述传入的待打印的矢量字体字符串进行多线程预处理。
8.如权利要求6或7所述的POS机,其特征在于,所述获取模块,具体用于:
采用先对所述多线程导入的单个矢量字体字符的图像进行灰度化处理,再应用图像梯度算法从所述经图像灰度化处理后的单个矢量字体字符的图像提取出图像边框的方式,多线程获取所述多线程导入的单个矢量字体字符的轮廓。
9.如权利要求8所述的POS机,其特征在于,所述压缩模块,具体用于:
按每个像素压缩到字节的方式,对所述多线程变换得到的单个矢量字体字符的黑白位图进行多线程压缩。
10.如权利要求9所述的POS机,其特征在于,所述POS机,还包括:
备份模块,用于备份所述打印队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574218.2A CN109816896A (zh) | 2018-12-21 | 2018-12-21 | 一种基于pos机的多线程打印方法及pos机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574218.2A CN109816896A (zh) | 2018-12-21 | 2018-12-21 | 一种基于pos机的多线程打印方法及pos机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109816896A true CN109816896A (zh) | 2019-05-28 |
Family
ID=66602190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811574218.2A Pending CN109816896A (zh) | 2018-12-21 | 2018-12-21 | 一种基于pos机的多线程打印方法及pos机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109816896A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115366545A (zh) * | 2022-10-24 | 2022-11-22 | 恒银金融科技股份有限公司 | 用于凭条打印机的字符打印方法和系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008939A (zh) * | 2007-01-25 | 2007-08-01 | 深圳创维-Rgb电子有限公司 | 一种嵌入式系统的点阵字库的实现方法 |
CN101383009A (zh) * | 2008-09-08 | 2009-03-11 | 北大方正集团有限公司 | 喷墨印刷设备的点阵数据变换方法及装置与喷墨印刷系统 |
CN101625848A (zh) * | 2009-07-28 | 2010-01-13 | 宁波新然电子信息科技发展有限公司 | 面向嵌入式平台的矢量字库实现方法 |
CN103488441A (zh) * | 2013-09-06 | 2014-01-01 | 深圳市新国都技术股份有限公司 | 一种阿拉伯语在pos机上打印的实现方法 |
CN104850363A (zh) * | 2014-02-18 | 2015-08-19 | 斯克林集团公司 | 矢量数据处理装置及方法、图像记录系统及电脑可读介质 |
CN106951397A (zh) * | 2017-03-08 | 2017-07-14 | 福建魔方电子科技有限公司 | 一种嵌入式终端的多字体显示方法 |
CN107562480A (zh) * | 2017-09-05 | 2018-01-09 | 深圳市新国都支付技术有限公司 | 一种pos机多国语言的实现方法及其系统 |
-
2018
- 2018-12-21 CN CN201811574218.2A patent/CN109816896A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101008939A (zh) * | 2007-01-25 | 2007-08-01 | 深圳创维-Rgb电子有限公司 | 一种嵌入式系统的点阵字库的实现方法 |
CN101383009A (zh) * | 2008-09-08 | 2009-03-11 | 北大方正集团有限公司 | 喷墨印刷设备的点阵数据变换方法及装置与喷墨印刷系统 |
CN101625848A (zh) * | 2009-07-28 | 2010-01-13 | 宁波新然电子信息科技发展有限公司 | 面向嵌入式平台的矢量字库实现方法 |
CN103488441A (zh) * | 2013-09-06 | 2014-01-01 | 深圳市新国都技术股份有限公司 | 一种阿拉伯语在pos机上打印的实现方法 |
CN104850363A (zh) * | 2014-02-18 | 2015-08-19 | 斯克林集团公司 | 矢量数据处理装置及方法、图像记录系统及电脑可读介质 |
CN106951397A (zh) * | 2017-03-08 | 2017-07-14 | 福建魔方电子科技有限公司 | 一种嵌入式终端的多字体显示方法 |
CN107562480A (zh) * | 2017-09-05 | 2018-01-09 | 深圳市新国都支付技术有限公司 | 一种pos机多国语言的实现方法及其系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115366545A (zh) * | 2022-10-24 | 2022-11-22 | 恒银金融科技股份有限公司 | 用于凭条打印机的字符打印方法和系统 |
CN115366545B (zh) * | 2022-10-24 | 2023-02-28 | 恒银金融科技股份有限公司 | 用于凭条打印机的字符打印方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101441713B (zh) | 一种pdf文件的光学字符识别方法及装置 | |
KR20190109732A (ko) | 한자 인쇄 문자 이미지 합성 방법 및 장치 | |
KR101801153B1 (ko) | 기계학습 기반의 문자 인식 시스템 | |
KR100661173B1 (ko) | 다이렉트 프린팅 기능을 갖는 프린터 및 그 인쇄방법 | |
CN107423004B (zh) | Pos终端打印票据的方法及pos终端 | |
US20200364452A1 (en) | A heuristic method for analyzing content of an electronic document | |
CN108829363A (zh) | 业务凭证打印方法及装置 | |
US10102457B2 (en) | Host device, printing system, and data processing method | |
JP2020170309A (ja) | 画像処理システム、画像処理装置、画像処理方法、及びプログラム | |
CN117420974B (zh) | 一种热敏打印机页模式控制方法以及相关装置 | |
EP2575024A2 (en) | Print data processing apparatus, a print data processing method, a printing system and program, a page data creating apparatus, and a rasterization processing apparatus | |
CN102117266B (zh) | 字符间距的处理方法和装置 | |
CN113033165B (zh) | 电子表格文件解析方法、装置和计算机可读存储介质 | |
CN109816896A (zh) | 一种基于pos机的多线程打印方法及pos机 | |
CN109887197A (zh) | 一种基于pos机的矢量字体打印方法及pos机 | |
JP4063845B2 (ja) | 2次元コード送信方法、システム、及び携帯端末 | |
CN112667225A (zh) | 一种原型图代码转换的方法、系统、设备及可读存储介质 | |
CN101901341B (zh) | 从可移植电子文档中提取光栅图像的方法和设备 | |
CN116384344A (zh) | 一种文档转换方法、装置及存储介质 | |
US9053359B2 (en) | Method and system for document authentication using Krawtchouk decomposition of image patches for image comparison | |
CN113657279B (zh) | 一种票据类图像版面解析方法及装置 | |
EP2416281A2 (en) | Font matching | |
US10606928B2 (en) | Assistive technology for the impaired | |
JP6394303B2 (ja) | ドライバープログラム、印刷システム、及び、データ処理方法 | |
CN109859414A (zh) | 一种实现POS机Logo数组编辑生成的方法及系统 |
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: 20190528 |