跳转到主要内容
要调整表格属性,请使用代码编辑器的 Search Conditions 部分。可用属性如下:

列搜索参数

ParameterDescription
Void AddHeaderKeyWord( String keyWord, String columnName, Real omissionQuality = worstQuality, Logic wholeWordMode = false, Logic multiLine = false )指定列名的关键字。
Void AddHeaderKeyHypothesis( Hypothesis hypothesis, String columnName )通过检测到的假设指定列名。
Void AddHeaderKeyHypothesis( XInterval left, YInterval top, XInterval right, YInterval bottom, String columnName )指定列名的坐标。
Void AddColumnType( TableColumnType type, String columnName, String regExp = emptyString )指定列类型。仅当列类型为正则表达式时才需指定第三个参数。TableColumnType 的可能取值:
ColumnType_Text—文本数据类型
ColumnType_Currency—金额数据类型
ColumnType_Date—日期数据类型
ColumnType_RegExp—正则表达式
ColumnType_Number—数字数据类型
Void ColumnOmissionQuality( Real quality, String columnName )如果使用固定列顺序,此参数用于设置对假设的惩罚,定义为系数(0 到 1 之间的数值);当固定列顺序中指定的列未被检测到时,将用该系数乘以该假设的质量。默认值为 0.9。
Void MissingContentPenalty( Real quality, String columnName )设置对假设的惩罚,定义为系数(0 到 1 之间的数值);当列中的实际数据类型与用户指定的数据类型不一致时,将用该系数乘以该假设的质量。若未设置该参数,默认值为 0.98。若使用列顺序规则,则该参数用于指定表中缺少该列时的惩罚。
Void ColumnBounds( XCoordinate left, XCoordinate right, String columnName )设置该列搜索区域的左右边界。
Void ExactColumnBorders( XCoordinate left, XCoordinate right, String columnName )设置精确的列边界。已知部分(或全部)列位置时,可使用此参数搜索表格。
Void AddColumnContent( Hypothesis hypothesis, String columnName )通过检测到的假设指定列内容。
Void AddColumnContent( XInterval, XInterval, String )通过设置列的左右边界来指定列内容。

设置列顺序的 Parameters

Parameter描述
Void AddPossibleColumnsOrder( String orderName, StringArray columnNames )指定一种固定列顺序的变体。
Void ColumnsRelation( StringArray columnNames )指定列顺序规则。

表头搜索参数

ParameterDescription
Void HasHeader( Logic )指定活动是否应查找表头。
Void HeaderOptional( Real q1, Real q2 )指定表头是否为可选,类似于用于元素的函数 Void Optional ( Real q1, Real q2 )。
Void HeaderSearchArea( Rect )指定表头的搜索 Rectangle。使用此函数时,表头的搜索区域将被计算为此 Rectangle 与包围整张表搜索区域的 Rectangle 的交集。
Void MaxHeaderHypothesesCount( Int )设置表头搜索期间生成的假设数量上限。
Void MinHeaderKeyElements( Int )设置检测表头所需的关键元素最小数量。默认值为 2。
Void ExtendHeaderLocalization( XInterval, YInterval, XInterval, YInterval )扩展被视为表头的区域。例如,可用于忽略位于表头与表体之间的无关信息行。
ParameterDescription
Void HasFooter( Logic has = true )指定活动是否需要查找页脚。
Void FooterOptional( Real q1, Real q2 )指定页脚是否为可选,类似于用于元素的 Void Optional ( Real q1, Real q2 ) 函数。
Void FooterSearchArea( Rect )指定页脚的搜索矩形区域。若使用此函数,页脚搜索区域将计算为该矩形与包围整张表格搜索区域的矩形的交集。
Void FooterHasTopSeparator()指定页脚与表格正文之间存在分隔符。该分隔符可以是表格边界的一部分。
Void FooterWholeWordMode ( Logic wholeWordMode = true )基于关键词查找页脚时使用此标志。若将此标志设为True,则仅由词的一部分组成的假设会被丢弃。默认设置为False
Void FooterNearestToTop ( Logic )基于关键词查找页脚时使用此标志。若将此标志设为True,活动将选择最靠上的候选并丢弃其余候选。若将此标志设为False,活动会考虑所有可能的候选。页脚的质量会影响表格的质量,随后将选择质量最高的表格假设。默认设置为True
Void AddFooterKeyWord( String keyWord )指定表格页脚的关键词。
Void AddFooterKeyHypothesis( Hypothesis hypothesis )通过检测到的假设指定表格的页脚。
Void AddFooterKeyHypothesis( XInterval, YInterval, XInterval, YInterval )指定表格页脚的坐标。

正文搜索参数

Parameter描述
Void DontFindBody()允许跳过正文搜索。用于调试。
Void BodyOptional( Real q1, Real q2 )指定正文是否为可选项,类似于用于元素的 Void Optional ( Real q1, Real q2 ) 函数。
Void IgnoreVerticalSeparators()在将表格划分为列时,忽略表格正文中的竖线分隔符(默认会考虑分隔符)。
Void IgnoreSeparatorsFromHeader()在将表格划分为列时,忽略表格表头中的竖线分隔符(默认会考虑竖线分隔符)。
Void AutoDetectLeftAndRight( Logic )启用对表格左右边界的自动检测。默认值为 True
Void AutoDetectTopAndBottom( Logic )启用对表格上下边界的自动检测。默认值为 True。如果将该标志设置为 False,则会使用表格元素搜索区域内的全部文本。

行检测参数

ParameterDescription
Void SingleLineTable( Logic )指示该活动:每一行文本必须对应表格中的一行。
Void SingleLineMasterColumn( Logic )指示该活动:每一行文本必须对应表格主列中的一行。
Void MaxRowVerticalGap( Distance )指定表格中两行之间的最大垂直距离。若超过指定距离,则表示表体结束。默认情况下,此距离不受限制。
Void MinRowVerticalGap( Distance )指定表格中两行之间的最小垂直距离。若小于指定距离,则将两行合并。默认值为 0。
Void MaxMasterColumnRowGap( Distance )指定表格主列中两行之间的最大垂直距离。若超过指定距离,则表示表体结束。默认情况下,此距离不受限制。
Void MinMasterColumnRowGap( Distance )指定特定列中两行之间的最小垂直距离。若小于指定距离,则将两行合并。默认距离为 0。
Void IgnoreHorizontalSeparators()在将表格划分为行时忽略水平分隔符。
Void DivideRowsBySeparators()仅依赖分隔符并忽略文本来检测行。
Void DivideRowsByMasterColumn( String columnName )指示该活动在将表格划分为行时使用指定列的文本。此函数可多次调用。若图像中的表格没有所需的列,则使用后续调用中指定的列,依此类推。若所有列都不可用,则在整个表格中检测行。
Void MasterColumnTextAlignment( TextAlignmentInTableCell )指定主列中单元格的文本对齐方式。可选值:TextAlignment_CellTop、TextAlignment_CellBottom。示例:MasterColumnTextAlignment: TextAlignment_CellBottom; - 文本对齐到单元格下边界。
Void AddStopWord( String )指定不应为其绘制单独行的词语。
Void RowSplitters( YCoordinateArray, Logic isBodyTopIncluded = true, Logic isBodyBottomIncluded = true )指定用于将表格划分为行的分隔符:isBodyTopIncluded == true 表示指定表体顶部,isBodyBottomIncluded == true 表示指定表体底部;isBodyTopIncluded == false 表示表体顶部自动检测,isBodyBottomIncluded == false 表示表体底部自动检测。任何位于表格搜索区域之外的指定分隔符都会被忽略。示例:let yArray = RepeatingGroup.AllInstances.GetYArray(1); RowSplitters( yArray );

多页表格参数

ParameterDescription
Void HeaderOnEachPage( Logic has = true )指定表头在每一页出现(位于每个单页子表的开头)。
Void AddHeaderKeyHypotheses( HypothesisInstances, String columnName )通过为可重复组的子元素提供一组假设,在多页中指定某列的列名。
Void FooterOnEachPage( Logic has = true )指定表尾在每一页出现。
Void AddFooterKeyHypotheses( HypothesisInstances )通过为可重复组的子元素提供一组假设,在多页中指定表尾。
Void PreviousInstances( TableHypothesisInstances )当表位于可重复组内时,指定其先前的表实例。假定实例顺序为自上而下,同一页内列边界不发生偏移,而在不同页之间可能存在轻微的水平偏移。如果表没有表头或未检测到表头,将使用先前实例来搜索列或改进列的查找。