微型打印机点阵指令解析方法技术

技术编号:21199358 阅读:51 留言:0更新日期:2019-05-25 01:06
本发明专利技术公开了一种微型打印机点阵指令解析方法,包括如下步骤:S1、遍历文件,获取各段光栅宽高参数;S2、排列内容,将数据按光栅矩阵存储;S3、处理S2中存储的光栅矩阵,拼接各光栅数据;S4、将S3中的数据填充到BMP结构。本发明专利技术支持解析所有格式为“指令+普通数据”的打印机点阵数据文件,适用范围广。

Analysis Method of Dot-matrix Instruction for Micro-printer

The invention discloses a dot matrix instruction parsing method for a micro printer, which includes the following steps: S1, traversing the file to obtain the width and height parameters of each grating section; S2, arranging the contents, storing the data according to the grating matrix; S3, processing the grating matrix stored in S2, splicing the grating data; S4, filling the data in S3 into the BMP structure. The invention supports the analysis of dot matrix data files of printers in all formats of \instruction + common data\, and has a wide application range.

【技术实现步骤摘要】
微型打印机点阵指令解析方法
本专利技术涉及一种微型打印机点阵指令解析方法,属于打印机指令解析方法领域。
技术介绍
随着大数据相关技术的发展,客户消费信息的汇总、分析工作在商业领域的重要性日渐凸显。通过对各类消费记录的大数据分析,商家可以准确而快速地掌握消费趋势,及时调整销售策略顺应市场潮流,从而取得行业竞争优势。大到一个商业综合体的各类型门店占比,小到一个店铺的各商品进货数量,消费型大数据的应用无处不在。而此种大数据的来源,便是每家店铺都有的微型票据打印机,由此,市场上出现了各类打印机数据采集方案,而打印机指令解析方法是其中不可或缺的重要组成部分。由行业内公知可以得出:微型票据打印机的原始输出信息有两种,一种是可见字符形式,另一种是点阵形式。本方案所论述的方法只针对后一种打印机数据类型。根据各类已有打印机数据采集方案中关于点阵指令解析方法的论述,可知当前所有公开的该功能方法原理都为:根据打印机厂商开放或网络公开的指令手册,在代码中预设对应微型打印机核心打印指令,每次接收到打印机原始数据便进行指令匹配,再按匹配的指令格式对其进行各项操作后填充为BMP图片数据,得到最终指令还原后图片。此型方法的缺陷及要解决的问题有以下几点:只能处理核心打印指令与代码预设类型匹配的打印机型号,单次版本代码兼容性有限。每次添加新型打印机指令都需要重新改写相关功能代码,单次升级代价较高。代码预设打印指令类型只能通过打印机厂商或其他渠道公示的技术文档获取。而部分打印机厂商并未使用行业内微型热敏打印机最通用的ESC\PK2指令系,且并未公开其指令协议;而用于打印发票的各型针式打印机,更是难寻其通用指令系。故该型方法存在明显的技术瓶颈。
技术实现思路
为了解决上述问题,本专利技术提供一种微型打印机点阵指令解析方法,支持解析所有格式为“指令+普通数据”的打印机点阵数据文件。解决上述问题的技术方案为:一种微型打印机点阵指令解析方法,包括如下步骤:S1、遍历文件,获取各段光栅宽高参数;S2、排列内容,将数据按光栅矩阵存储;S3、处理S2中存储的光栅矩阵,拼接各光栅数据;S4、将S3中的数据填充到BMP结构。进一步地,S1具体步骤为:S11、匹配内置打印机指令,直接获取宽高参数位置;S12、统计字符段概率确定指令头,匹配相邻指令头间数据量确定宽高参数位置;S13、限值假设法推测指令头,遍历假定指令头后续若干数据,查看是否有满足数值乘积与相邻假定指令头间数据量相符的宽高参数组合,是,则确定指令头及宽高参数位置。进一步地,S2具体步骤为:S21、将指令头后续普通数据直接按对应宽高值填充到矩阵数组;S22、添加过滤算法,识别并删除部分打印机在随机光栅段添加的固定校验数据,再将指令头后续普通数据按对应宽高值填充到矩阵数组。进一步地,S3具体步骤为:S31、将各光栅直接对齐后拼接;S32、根据各光栅宽度波动范围判断指定宽高参数指令前是否含有光栅偏移指令头,对各光栅进行偏移值校准后再进行拼接;S33、根据各光栅高度值判断普通数据排列是高度固定的光栅行还是高度不一的光栅段,在每个光栅行之间添加空白行数据再进行拼接,以保证解析后图片文字排版更接近原打印文件排版样式。进一步地,S4具体步骤为:编写BMP数据结构体,根据计算得出的拼接后光栅宽高填充BMP文件头,信息头位置;将处理后光栅数据填充到图片数据部分。本专利技术的优点在于:不再只采用“匹配代码中预设打印机指令”的方法来识别一次打印机数据中的指令类型;支持解析所有格式为“指令+普通数据”的打印机点阵数据文件。每次添加新支持的打印机指令类型,无需改写功能代码,只用改变本方法接口里相关样本训练参数即可;对于已支持的打印指令,再使用与样本库中指令匹配的方式快速解析,从而保证实际应用中批量解析处理效率。使项目开发摆脱打印机厂商及打印机类型的束缚。下面结合附图对本专利技术作进一步详细描述。附图说明图1为本专利技术流程示意图。具体实施方式为了加深对本专利技术的理解,下面将结合实施例和附图对本专利技术作进一步详述,该实施例仅用于解释本专利技术,并不构成对本专利技术保护范围的限定。如图1所示,一种微型打印机点阵指令解析方法,包括如下步骤:S1、遍历文件,获取各段光栅宽高参数;S2、排列内容,将数据按光栅矩阵存储;S3、处理S2中存储的光栅矩阵,拼接各光栅数据;S4、将S3中的数据填充到BMP结构。S1具体步骤为:S11、匹配内置打印机指令,直接获取宽高参数位置;S12、统计字符段概率确定指令头,匹配相邻指令头间数据量确定宽高参数位置;S13、限值假设法推测指令头,遍历假定指令头后续若干数据,查看是否有满足数值乘积与相邻假定指令头间数据量相符的宽高参数组合,是,则确定指令头及宽高参数位置。S2具体步骤为:S21、将指令头后续普通数据直接按对应宽高值填充到矩阵数组;S22、添加过滤算法,识别并删除部分打印机在随机光栅段添加的固定校验数据,再将指令头后续普通数据按对应宽高值填充到矩阵数组。S3具体步骤为:S31、将各光栅直接对齐后拼接;S32、根据各光栅宽度波动范围判断指定宽高参数指令前是否含有光栅偏移指令头,对各光栅进行偏移值校准后再进行拼接;S33、根据各光栅高度值判断普通数据排列是高度固定的光栅行还是高度不一的光栅段,在每个光栅行之间添加空白行数据再进行拼接,以保证解析后图片文字排版更接近原打印文件排版样式。S4具体步骤为:编写BMP数据结构体,根据计算得出的拼接后光栅宽高填充BMP文件头,信息头位置;将处理后光栅数据填充到图片数据部分。实施例:首次传入该型打印指令数据(训练样本过程):遍历打印机原始数据文件(注:用作样本的点阵数据文件,其对应的每个可见打印字符必须保持严格差异)前100字节,以某数值(传入参数)作为指令检索样本长度,将该100字节分成若干样本组(过滤掉全为0x00的样本),再依次计算组中样本在整个数据文件中出现的次数并按照样本位置顺序依次记录。根据打印机点阵数据都遵循的排列规则,可通过上述样本出现的次数与位置信息定位到决定后续点阵排布长宽的点阵指令头以及指令段复用起始指令头。然后以某数值(传入参数)作为宽高参数检索样本长度,将该命令头后续20字节分为若干样本组,以小端排序的规则计算得到每个样本相应的宽高数值(高度值在前,计算值为零时用定高值(传入参数)替代;宽度值在后,计算值为零则舍弃该样本)。再与宽高字节数据位置到下个指令段起始指令头位置的偏移量进行对比,该偏移量减去换行标识值(传入参数)再乘以密度因子(传入参数)得到的数值应该与宽高乘积相等。由此可以得到该型打印指令数据中每个点阵宽高数值。根据每段点阵数据计算的宽高值将其紧跟的普通数据排列成相应的矩阵数组,再结合BMP文件宽度值要求计算出解析后图片宽度,对部分矩阵数组进行补零处理。解析后图片高度即为所有点阵高度值之和。使用反色函数处理处矩阵数组后,再按BMP图片数据排列规则将其依次填充到BMP结构数组,其中的BMP文件头及数据头结构体根据解析后图片的相应参数计算值填充。输出带传入参数组合标识符的BMP文件或返回对应步骤错误码。根据返回的图片效果,确定最佳传入参数组合。调用接口将该型打印指令解析规则添加到已识别指令队列。非首次传入该型打印指令数据(批量解析过程):遍历数据文件,本文档来自技高网
...

【技术保护点】
1.一种微型打印机点阵指令解析方法,其特征在于,包括如下步骤:S1、遍历文件,获取各段光栅宽高参数;S2、排列内容,将数据按光栅矩阵存储;S3、处理S2中存储的光栅矩阵,拼接各光栅数据;S4、将S3中的数据填充到BMP结构。

【技术特征摘要】
1.一种微型打印机点阵指令解析方法,其特征在于,包括如下步骤:S1、遍历文件,获取各段光栅宽高参数;S2、排列内容,将数据按光栅矩阵存储;S3、处理S2中存储的光栅矩阵,拼接各光栅数据;S4、将S3中的数据填充到BMP结构。2.根据权利要求1所述的方法,其特征在于,S1具体步骤为:S11、匹配内置打印机指令,直接获取宽高参数位置;S12、统计字符段概率确定指令头,匹配相邻指令头间数据量确定宽高参数位置;S13、限值假设法推测指令头,遍历假定指令头后续若干数据,查看是否有满足数值乘积与相邻假定指令头间数据量相符的宽高参数组合,是,则确定指令头及宽高参数位置。3.根据权利要求1述的方法,其特征在于,S2具体步骤为:S21、将指令头后续普通数据直接按对应宽高值填充到矩阵...

【专利技术属性】
技术研发人员:刘志斌刘帅
申请(专利权)人:江苏沁恒股份有限公司
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1