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

列搜索参数

ParameterDescription
Void AddHeaderKeyWord( String keyWord, String columnName, Real omissionQuality = worstQuality, Logic wholeWordMode = false, Logic multiLine = false )指定用于列名的关键字。
Void AddHeaderKeyHypothesis( Hypothesis hypothesis, String columnName )通过检测到的 Hypothesis 指定列名。
Void AddHeaderKeyHypothesis( XInterval left, YInterval top, XInterval right, YInterval bottom, String columnName )通过坐标指定列名的位置。
Void AddColumnType( TableColumnType type, String columnName, String regExp = emptyString )指定列类型。只有当列类型为正则表达式时才必须指定第三个参数。TableColumnType 的可能取值:
ColumnType_Text—Text 数据类型
ColumnType_Currency—Amount of money 数据类型
ColumnType_Date—Date 数据类型
ColumnType_RegExp—正则表达式
ColumnType_Number—Number 数据类型
Void ColumnOmissionQuality( Real quality, String columnName )如果使用固定列顺序,此 Parameter 会为假设设置惩罚系数。该系数为 0 到 1 之间的数值,当固定列顺序中指定的列未被检测到时,用于乘以该假设的质量。默认值为 0.9。
Void MissingContentPenalty( Real quality, String columnName )为假设设置惩罚系数。该系数为 0 到 1 之间的数值,当列中的实际数据类型与用户指定的数据类型不一致时,用于乘以该假设的质量。如果未设置此 Parameter,则默认值为 0.98。如果使用列顺序规则,此参数还用于指定表格中缺少该列时的惩罚。
Void ColumnBounds( XCoordinate left, XCoordinate right, String columnName )设置列搜索区域的左右边界。
Void ExactColumnBorders( XCoordinate left, XCoordinate right, String columnName )设置精确的列边界。当部分(或全部)列的位置已知时,可以使用此 Parameter 搜索表格。
Void AddColumnContent( Hypothesis hypothesis, String columnName )通过检测到的 Hypothesis 指定列内容。
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 )指定表头的搜索矩形区域。如果使用此函数,表头的搜索区域将被计算为此矩形与包含整个表格搜索区域的矩形的交集。
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 )指定表格页脚的坐标。

表体搜索参数

ParameterDescription
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 )在表格位于重复组中时,指定之前的表格实例。假定实例的排列方向为自上而下,同一页内列边界不会发生偏移,而跨页之间列边界可能会有轻微的水平偏移。当表格没有表头或未检测到表头时,使用之前的实例来搜索列或改进列的搜索。