跳转到主要内容
为便于说明,假设在元素(及其任一父级 Group 元素)的 Properties 面板中未设置任何搜索区域约束。在这种情况下,在程序应用“Search Conditions”部分中的约束之前,元素的搜索区域将与页面矩形重合。若该部分没有其他约束,程序将会在整页范围内查找该元素。 应用上文Search Constraints中描述的类型 1、2 和 4 的约束,将创建由多个矩形组成的搜索区域。程序会将搜索区域视为一个外接整个数组的单个矩形,并从中排除一组指定的矩形(排除矩形)。 应用上文 Search Constraints 中描述的类型 3 的搜索约束,将为假设的每个边界——左、右、上、下——创建允许的坐标范围。每个边界均由对应坐标轴上的区间来刻画,例如 [x1, x2] 或 [y1, y2]。其中 x1 和 x2 的类型为 XCoordinate,y1 和 y2 的类型为 YCoordinate。该轴上的区间必须满足:X 坐标 x1 <= x2,Y 坐标 y1 <= y2 如果连续对某个边界应用多个约束,则每个约束都会改变该边界的允许坐标范围。 设 Search Condition 部分包含以下约束:
  • LeftBound > 5mm,
  • LeftBound < 15mm,
  • LeftBound < 10mm.
设在应用上述约束之前,搜索区域与页面矩形重合,即 [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom]。则元素边界的坐标范围将为: 设在执行这些约束之前未指定搜索区域。则对于单页 FlexiLayout(文档允许的最小与最大页数均为 1),搜索区域与页面矩形重合 [PageRect.Left, PageRect.Top, PageRect.Right, PageRect.Bottom]。对于多页 FlexiLayout,搜索区域的最大范围为 [-INF, -INF, INF, INF]。元素边界的坐标范围如下:
BoundaryRange for one-page FlexiLayoutRange for multi-page FlexiLayout
LeftBound[PageRect.Left, PageRect.Right][-INF, INF]
TopBound[PageRect.Top, PageRect.Bottom][-INF, INF]
RightBound[PageRect.Left, PageRect.Right][-INF, INF]
BottomBound[PageRect.Top, PageRect.Bottom][-INF, INF]
当执行约束 LeftBound > 5mm 时,只有左边界发生变化。其可能值的范围对于单页 FlexiLayout 变为区间 [5mm, PageRect.Right],对于多页 FlexiLayout 变为区间 [5mm, INF] 应用 LeftBound > 5mm 约束后,仅左边界会改变——其允许坐标为 [5mm, PageRect.Right] 应用 LeftBound < 15mm 约束后,左边界的允许坐标范围将为 [5mm, 15mm] 应用 LeftBound < 10mm 约束后,左边界的允许坐标范围将为 [5mm, 10mm] 同样地,你可以为元素的其他边界设置约束。 指定的搜索区域边界构成所谓的fuzzy rectangle