package com.walker.openocr; import com.walker.openocr.table.CellObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.List; import java.util.Map; import java.util.TreeMap; /** * 识别解析结果对象定义,方便抽象复用代码。 * @author 时克英 * @date 2022-09-06 */ public abstract class RecognizeResult { protected final transient Logger logger = LoggerFactory.getLogger(this.getClass()); protected Map> rowCache = new TreeMap<>(); public void printRowCache(){ List data = null; for(Map.Entry> entry : this.rowCache.entrySet()){ logger.debug("第 " + entry.getKey() + " 行 =========================================="); data = entry.getValue(); if(data != null){ for(CellObject co : data){ logger.debug(co.toString()); } } } } public abstract void addTextBlock(TextBlock textBlock); /** * 添加完文本块后,排序,把相关行内容放在一起,并对每一行进行列排序。 */ public abstract void sortCellObjectList(); /** * 计算标题对应的值。 */ public abstract void calculateValue(); /** * 返回对象(配置)类别,如:TableConfig / IdCardConfig。 * @return */ public abstract T getRecognizeConfig(); }