CN100373320C - 收款机打印数据格式自动提取方法 - Google Patents
收款机打印数据格式自动提取方法 Download PDFInfo
- Publication number
- CN100373320C CN100373320C CNB031426530A CN03142653A CN100373320C CN 100373320 C CN100373320 C CN 100373320C CN B031426530 A CNB031426530 A CN B031426530A CN 03142653 A CN03142653 A CN 03142653A CN 100373320 C CN100373320 C CN 100373320C
- Authority
- CN
- China
- Prior art keywords
- detailed
- line
- row
- total
- line number
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
一种收款机打印数据格式自动提取方法,由收款机打印输出端连接的数据处理机开辟缓冲区BUFEER,并对接收到的输出打印数据进行分类、比较和识别;所述打印数据包括票头、明细和票尾数据区;尤其是所述自动提取方法包括以下步骤:F、确定明细区各行、列明细单元的特定类型代码;G、按所述特定类型代码提取各明细项金额,并计算本次交易总金额;H、以计算的所述总金额查找票面合计金额项,并提取该票面合计金额项左列的关键字符串。本发明采用软件规范的格式语言来描述打印格式,形成自动识别方法,在不同商家的情况下预选一下对象设置,即可自动完成小票数据格式的提取。
Description
技术领域:
本发明涉及计算机与打印机的控制与输出技术,特别涉及与计算机连用的打印机控制与数据字符的识别技术。
背景技术:
为了从收款机打印小票的数据中提取出有效的经营数据,特别是金额与合计等数据,需要对打印小票的格式进行分析。通常的方法是利用打印小票的微型打印机的十六进制打印方式将收款机打印小票的数据打印出来,再由人来分析哪些是打印字符,哪些是控制码,还要分析这些打印字符哪些是管理信息,哪些是商品信息,而且还要分析这些控制码的功能是什么,才能提取出有用的小票打印格式。这种打印后进行识别的方案费时费力,还容易出错。
例如图3所述一种商场销售打印小票示例中,前四行是票头,后三行是票尾,中间的商品明细信息中,又有中文名称和编码及价格信息,还有收款和找赎等信息。纸面分析已经够复杂了,分析这些信息的机内表示码又更加复杂。
发明内容:
本发明为克服现有技术的不足之处,提高效率和易于操作,提出一种新的自动识别的收款机打印小票数据格式提取方法,在预先对不同商家不同的小票打印格式,即票头、明细、票尾信息所占用的行数、栏目(列)数及其数据信息类型的不同,进行归纳、统计、分析的基础上,采用软件规范的格式语言来描述打印格式,形成自动识别方法。无须等待小票打印到纸面,而采用数据处理设备模拟打印机接收从收款机发给打印机的所有数据,并自动分析和识别可视字符与控制码,在不同商家的情况下预选一下对象设置,即可自动完成小票数据格式的提取。本方法针对的商家是有限的若干类,每次针对某一个商家调整其初始优化条件和特殊标记,即可对该商家形成完整的小票数据格式提取步骤,完成联机型前置式自动提取。
本发明的目的可以这样来达到:
设计一种收款机打印数据格式自动提取方法,由收款机打印输出端连接的数据处理机开辟缓冲区BUFEER,接收所有收款机输出给打印机的数据,并对这些数据进行分类、比较和识别;所述打印数据包括票头、明细和票尾数据区;其特征在于:
所述自动提取方法包括以下步骤:
A、以分隔符将小票数据顺序分成可打印字符的基本单元;
B、以行为单位,建立小票数据的识别特征描述结构数组;
C、确定打印数据格式中明细项所占用的行数,包括以下分步骤:
c1、按每个明细项可能是1行或2行或3行描述,分别对比,累计各行中列的明细单元的特定类型代码符合的匹配的行数;
c2、确定行描述匹配比例最高的明细项描述行数;
D、确定明细区首行和末行的位置;
E、确定明细项区域的总行数;
F、确定明细区各行、列明细单元的特定类型代码;
G、按所述特定类型代码提取各明细项金额,并计算本次交易总金额;
H、以计算的所述总金额查找票面合计金额项,并提取该票面合计金额项左列的关键字符串。
附图说明
图1-1和图1-2是本发明收款机打印数据格式自动提取方法主要步骤流程图;
图2是所述打印数据格式自动提取方法分区提取流程图;
图3是一种打印票面与其对应机器码分析对照图。
具体实施方式 以下结合附图详述本发明的实施例。
一种收款机打印数据格式自动提取方法,由收款机的打印输出端连接的数据处理机开辟缓冲区BUFEER,接收所有收款机输出给打印机的数据,并对输出打印数据进行分类、比较和识别;所述打印数据包括票头、明细和票尾数据区;其特征在于:
所述自动提取方法包括以下步骤:
A、以分隔符将小票数据顺序分成可打印字符的基本单元;
B、以行为单位,建立小票数据的识别特征描述结构数组;
C、确定打印数据格式中明细项所占用的行数,包括以下分步骤:
c1、按每个明细项可能是1行或2行或3行描述,分别对比,累计各行中列的明细单元的特定类型代码符合的匹配的行数;
c2、确定行描述匹配比例最高的明细项描述行数;
D、确定明细区首行和末行的位置;
E、确定明细项区域的总行数;
F、确定明细区各行、列明细单元的特定类型代码;
G、按所述特定类型代码提取各明细项金额,并计算本次交易总金额;
H、以计算的所述总金额查找票面合计金额项,并提取该票面合计金额项左列的关键字符串。
所述步骤A又包括以下分步骤:
a1、以典型的行分隔符将打印数据从上至下进行分行;
a2、以列分隔符从左至右将各行内顺序分成可打印字符的基本单元;所述步骤B又包括以下内容:
所述结构数组又包含行号、该行总列数及行内每一基本单元的特定类型代码;所述特定类型代码定义为符合所述明细项单元规定的数据类型;
所述分步骤c1又包括以下细分步骤:
c11、按每个明细项为1行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX1;计算相对匹配比例
c12、按每个明细项为2行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX2;计算相对匹配比例
c13、按每个明细项为3行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX3;计算相对匹配比例
所述分步骤c2又包括以下内容:
确定K1、K2、K3中的最大值为明细项描述行数。
所述步骤D又包括以下分步骤:
d1、按行数递增顺序确定首次符合最高匹配比例的明细项描述行数的行的序号,即明细区首行;
d2、按类似方法从所述首行开始,确定明细区最后明细项的最后一描述行的序号,即末行;
所述步骤E又包括以下内容:
以所述末行行数减去所述首行行数,确定所述明细区的区域大小,即从首行开始至末行的行数。
所述步骤F又包括以下内容:
按照已确定的明细项不同行中各列明细单元的特定类型的特征确定各明细单元的特定类型代码;
所述步骤G又包括以下分步骤:
g1、在票头区按识别的行列格式逐行提取其店员、收银员及编号等有用信息;
g2、在明细区按识别的行列格式逐行提取其商品名及金额等有用信息,并计算总金额合计;
所述步骤H又包括以下内容:
在票尾区按识别的行列格式提取与计算总金额相等的合计金额,并提取其左列的关键字符。
实用中,本发明各流程可分述如下:
1)、打印小票数据基本单元的识别一流程(2.1.1-1)
通过识别打印机打印数据中最典型的行分隔符(0X0A)和列分隔符(0×20),将小票数据按从上至下分行,每行从左至右分列的顺序将小票数据顺序分成可打印字符的基本单元。
此例中,可打印行数为21,每行最大列数为5(第二行)。
2)、建立小票数据结构数组一流程(2.1.1-2)
以行为单位,建立小票数据的识别特征描述结构数组,每一结构数组元素含有行号、该行总列数及该行每一基本单元的特定类型代码等多项成员。特定类型代码为符合明细项单元规定的数据类型。例如,序号、商品名、货币金额、重量等。结构数组为Detailtype,有元素21个,Maxdt=21。小票数据格式提取是通过对结构体数组Detailtype中各元素及元素成员做识别、分析、综合而确定的。
例如:第7行中含有货币金额类型代码。
第12行中含有序号类型代码。
3)、确定小票格式中明细项描述行数一流程(2.1.1-3)
按每个明细项可能是1行、2行或3行描述,分三个情况,分别对比结构数组Detail type[i],累计各元素中成员的特定类型代码符合匹配的行数MAX,再对各累计匹配行数MAX做分析。即:
按每个明细项为1行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX1=5;
按每个明细项为2行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX2=5;
并计算相对匹配比例为按每个明细项为3行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX3=0;
此例中:明细项为1行描述累计匹配行数最大值MAX1=5;
明细项为2行描述累计匹配行数最大值MAX2=5;
明细项为3行描述累计匹配行数最大值MAX3=0;
相对打印行数匹配比例为:
十分明显,明细项2的行描述的匹配比例最高,由此确定了小票格式中明细项描述行数为2行,即Detail Lines=2。
4)、确定明细项首行及末行位置一流程(2.1.1-4)
按明细项2行描述的格式,再次统计Detail type[i]中各元素的成员特定类型代码匹配的次数,找出首次出现高匹配次数的行数。高匹配的元素可认为是符合明细项正常格式的元素。
此例中,高匹配次数比较的估计值可参考流程(2.1.1-3)中的MAX2,找到Detail type[i]中首次出现高匹配次数的行数为第6行,即Min_dt=6。将Detailtype中从元素min_dt开始符合明细项正常格式的后续内容保存至另一结构数组中Dt,进行进一步分析。
结构数组Dt[i]=De tailtype[i],i=1~Maxdt
同时也确定了小票数据票头区域与明细项区域的划分为:
FirstDetail=Detailtype[min_dt]
5)、确定明细项区域大小一流程(2.1.1-5)
从Dt(min_dt)元素开始,按每明细项二行描述格式,再次分析Dt各元素,提取出明细项不同行各列明细单元的特定类型代码生成di,此例中明细项确定为二行描述,则填写d1、d2、而d3=0。
根据确定的d1、d2特定类型代码,从Dt[min_dt](FirstDetail)开始至Dt[max_dt]仔细进行类型匹配比对,确定出明细区最后一明细项的最后一描述行max_dt,并赋值给LastDetail。
此例中:max_dt=Last Datail=15,由此可确定明细区域从第6行至15行。
6)、进一步确定每一明细项各行、各列明细单元的特定类型代码一流程(2.1.1-6)
根据前面确定出来的d1、d2、d3,结合对应数据再次分析明细项各描述行内各列明细单元的确切特定类型代码,确定易混淆项。例如,序号与数量、单价金额与小计金额等。
7)、小票数据格式验证及累计金额关键字符提取一流程(2.1.1-7)
按照上述流程确定的小票数据格式,执行 “票头、明细票尾数据提取流程”,重新分析小票数据,提取出各明细项金额,并计算小票总金额(流程2.1.1-7)。
8)、在票尾区数据中查找与计算总金额相等的合计金额,并提取前面的关键字符串一流程(2.1.1-8)
此例中:合计金额为75.00,关键字符串为“实收:”。
同时此步操作亦对前述流程确定的小票格式做了提取正确性的验证。
Claims (4)
1.一种收款机打印数据格式自动提取方法,由收款机打印输出端连接的数据处理机开辟缓冲区BUFEER,并对接收到的输出打印数据进行分类、比较和识别;所述打印数据包括票头、明细和票尾数据区;其特征在于:
所述自动提取方法包括以下步骤:
A、以分隔符将小票数据顺序分成可打印字符的基本单元;
B、以行为单位,建立小票数据的识别特征描述结构数组;
C、确定打印数据格式中明细项所占用的行数,包括以下分步骤:
c1、按每个明细项可能是1行或2行或3行描述,分别对比,累计各行中列的明细单元的特定类型代码符合的匹配的行数;
c2、确定行描述匹配比例最高的明细项描述行数;
D、确定明细区首行和末行的位置;
E、确定明细项区域的总行数;
F、确定明细区各行、列明细单元的特定类型代码;
G、按所述特定类型代码提取各明细项金额,并计算本次交易总金额;
H、以计算的所述总金额查找票面合计金额项,并提取该票面合计金额项左列的关键字符串。
2.根据权利要求1所述的打印数据格式自动提取方法,其特征在于:所述步骤D又包括以下分步骤:
d1、按行数递增顺序确定首次符合最高匹配比例的明细项描述行数的行的序号,即明细区首行;
d2、按类似方法从所述首行开始,确定明细区最后明细项的最后一描述行的序号,即末行;
所述步骤E又包括以下内容:
以所述末行行数减去所述首行行数,确定所述明细区的区域大小,即从首行开始至末行的行数。
3.根据权利要求2所述的打印数据格式自动提取方法,其特征在于:所述步骤F又包括以下内容:
f1、按照已确定的明细项不同行中各列明细单元的特定类型的特征确定所述各明细单元的特定类型代码;
所述步骤G又包括以下分步骤:
g1、在票头区按识别的行列格式逐行提取其店员、收银员及编号等有用信息;
g2、在明细区按识别的行列格式逐行提取其商品名及金额等有用信息,并计算总金额合计;
所述步骤H又包括以下内容:
在票尾区按识别的行列格式提取与计算总金额相等的合计金额,并提取其左列的关键字符。
4.根据权利要求3所述的打印数据格式自动提取方法,其特征在于:所述步骤A又包括以下分步骤:
a1、以典型的行分隔符将打印数据从上至下进行分行;
a2、以列分隔符从左至右将各行内顺序分成可打印字符的基本单元;
所述分步骤B又包括以下内容:
所述结构数组又包含行号、该行总列数及行内每一基本单元的特定类型代码;所述特定类型代码定义为符合所述明细项单元规定的数据类型;
所述分步骤c1又包括以下细分步骤:
c12、按每个明细项为2行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX2;计算相对匹配比例
c13、按每个明细项为3行描述对比结构数组,累计各元素中成员的特定类型代码符合匹配的行数MAX3;计算相对匹配比例
所述分步骤c2又包括以下内容:
确定K1、K2、K3中的最大值为明细项描述行数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031426530A CN100373320C (zh) | 2003-06-11 | 2003-06-11 | 收款机打印数据格式自动提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB031426530A CN100373320C (zh) | 2003-06-11 | 2003-06-11 | 收款机打印数据格式自动提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1547102A CN1547102A (zh) | 2004-11-17 |
CN100373320C true CN100373320C (zh) | 2008-03-05 |
Family
ID=34324024
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB031426530A Expired - Fee Related CN100373320C (zh) | 2003-06-11 | 2003-06-11 | 收款机打印数据格式自动提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100373320C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103544329A (zh) * | 2013-10-30 | 2014-01-29 | 江苏众瀛联合数据科技有限公司 | 一种消费信息的采集方法 |
CN104966210B (zh) * | 2015-06-04 | 2019-07-02 | 深圳市新国都支付技术有限公司 | 一种实现商品交易综合信息在线采集的系统及方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000123256A (ja) * | 1998-10-13 | 2000-04-28 | Casio Comput Co Ltd | データ印刷装置及び記憶媒体 |
JP2000285316A (ja) * | 1999-03-31 | 2000-10-13 | Fujitsu Ltd | 電子式キャッシュレジスタ |
CN1302029A (zh) * | 1999-12-30 | 2001-07-04 | 国际商业机器公司 | 格式化计算机生成的输出文件 |
CN1383093A (zh) * | 2001-04-25 | 2002-12-04 | 株式会社日立制作所 | 文档、文档处理系统和文档产生系统 |
-
2003
- 2003-06-11 CN CNB031426530A patent/CN100373320C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000123256A (ja) * | 1998-10-13 | 2000-04-28 | Casio Comput Co Ltd | データ印刷装置及び記憶媒体 |
JP2000285316A (ja) * | 1999-03-31 | 2000-10-13 | Fujitsu Ltd | 電子式キャッシュレジスタ |
CN1302029A (zh) * | 1999-12-30 | 2001-07-04 | 国际商业机器公司 | 格式化计算机生成的输出文件 |
CN1383093A (zh) * | 2001-04-25 | 2002-12-04 | 株式会社日立制作所 | 文档、文档处理系统和文档产生系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1547102A (zh) | 2004-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA1118108A (en) | System for processing documents having written indicia thereon | |
Sanchez et al. | ICDAR 2015 competition HTRtS: Handwritten Text Recognition on the tranScriptorium dataset | |
CN107067044A (zh) | 一种财务报销全票据智能审核系统 | |
CN105045780B (zh) | 一种发票字条语义信息的识别方法及装置 | |
US5867596A (en) | Method for diagram recognition by using recognizing rules and system for implementing the method | |
EP2671190B1 (en) | System for data extraction and processing | |
CN103914680A (zh) | 一种喷印字符图像识别与校验系统及方法 | |
CN110956739A (zh) | 一种票据识别方法及装置 | |
CN112508011A (zh) | 一种基于神经网络的ocr识别方法及设备 | |
CN109117885A (zh) | 一种基于深度学习的邮票识别方法 | |
CN110334217A (zh) | 一种要素抽取方法、装置、设备及存储介质 | |
JP4280355B2 (ja) | 文字認識装置 | |
CN102567534A (zh) | 互动产品用户生成内容拦截系统及其拦截方法 | |
EP1118959B1 (en) | Method and apparatus for determining form sheet type | |
CN112541077A (zh) | 一种用于电网用户服务评价的处理方法及系统 | |
CN111814779A (zh) | 一种票据文本识别方法、装置、设备及存储介质 | |
CN109582946B (zh) | 文字区域排版方向的确定方法及装置 | |
Zhu et al. | DocBed: A multi-stage OCR solution for documents with complex layouts | |
CN100373320C (zh) | 收款机打印数据格式自动提取方法 | |
Li et al. | Image pattern recognition in identification of financial bills risk management | |
Garain et al. | Identification of embedded mathematical expressions in scanned documents | |
CN107292255A (zh) | 基于特征矩阵相似度分析的手写数字识别方法 | |
CN115983202A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN102332088B (zh) | 一种基于游程特征的选票符号机器视觉识别方法 | |
CN113780284B (zh) | 一种基于目标检测和度量学习的logo检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080305 Termination date: 20170611 |