> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Funciones que limitan el área de búsqueda

> Limite las áreas de búsqueda de elementos en las relaciones avanzadas de prebúsqueda de FlexiLayout con las funciones LeftOf, RightOf, Above, Below, Exclude y RestrictSearchArea.

Las funciones que se enumeran en la tabla siguiente solo pueden usarse en la sección **Relaciones avanzadas de prebúsqueda**. Cada función especifica un rectángulo difuso para el área de búsqueda o añade rectángulos a un array de rectángulos excluidos.

| Definición                                                                                    | Descripción                                                                                                                                                                                  |
| --------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Void LeftOf( XInterval x, Distance offset = 0 )`                                             | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano vertical situado a la izquierda del punto `x.End - offset`.         |
| `Void LeftOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                     | Limita el área de búsqueda mediante el semiplano vertical situado a la izquierda del punto `fuzzyRect.Left.End - offset`.                                                                    |
| `Void LeftOf( Hypothesis hyp, Distance offset = 0 )`                                          | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano vertical situado a la izquierda del punto `hyp.Left.End - offset`.  |
| `Void LeftOf( HypothesisInstances hyps, Distance offset = 0 )`                                | Limita el área de búsqueda mediante el semiplano vertical situado a la izquierda del punto `hyps.Left.End - offset`. Se utilizan coordenadas globales.                                       |
| `Void RightOf( XInterval x, Distance offset = 0 )`                                            | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano vertical situado a la derecha del punto `x.Start + offset`.         |
| `Void RightOf( FuzzyRect fuzzyRect, Distance offset = 0 )`                                    | Limita el área de búsqueda mediante el semiplano vertical situado a la derecha del punto `fuzzyRect.Right.Start + offset`.                                                                   |
| `Void RightOf( Hypothesis hyp, Distance offset = 0 )`                                         | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano vertical situado a la derecha del punto `hyp.Right.Start + offset`. |
| `Void RightOf( HypothesisInstances hyps, Distance offset = 0 )`                               | Limita el área de búsqueda mediante el semiplano vertical situado a la derecha del punto `hyps.Right.Start + offset`. Se utilizan coordenadas globales.                                      |
| `Void Above( YInterval y, Distance offset = 0 )`                                              | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano horizontal situado por encima del punto `y.End - offset`.           |
| `Void Above( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | Limita el área de búsqueda mediante el semiplano horizontal situado por encima del punto `fuzzyRect.Top.End - offset`.                                                                       |
| `Void Above( Hypothesis hyp, Distance offset = 0 )`                                           | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano horizontal situado por encima del punto `hyp.Top.End - offset`.     |
| `Void Above( HypothesisInstances hyps, Distance offset = 0 )`                                 | Limita el área de búsqueda mediante el semiplano horizontal situado por encima del punto `hyps.Top.End - offset`. Se utilizan coordenadas globales.                                          |
| `Void Below( YInterval y, Distance offset = 0 )`                                              | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano horizontal situado debajo del punto `y.Start + offset`.             |
| `Void Below( FuzzyRect fuzzyRect, Distance offset = 0 )`                                      | Limita el área de búsqueda mediante el semiplano horizontal situado debajo del punto `fuzzyRect.Bottom.Start + offset`.                                                                      |
| `Void Below( Hypothesis hyp, Distance offset = 0 )`                                           | Limita el área de búsqueda a un rectángulo resultante de la intersección entre el rectángulo de la página y el semiplano horizontal situado debajo del punto `hyp.Bottom.Start + offset`.    |
| `Void Below( HypothesisInstances hyps, Distance offset = 0 )`                                 | Limita el área de búsqueda mediante el semiplano horizontal situado debajo del punto `hyps.Bottom.Start + offset`. Se utilizan coordenadas globales.                                         |
| `Void Exclude( Hypothesis hyp )`                                                              | Excluye la región de la hipótesis `hyp` del área de búsqueda. Si no se encuentra la hipótesis `hyp`, excluye el rectángulo interno del área de búsqueda de la hipótesis `hyp`.               |
| `Void Exclude( Rect rect )`                                                                   | Excluye el rectángulo `rect` del área de búsqueda.                                                                                                                                           |
| `Void Exclude( RectArray rectArray )`                                                         | Excluye el array de rectángulos `rectArray` del área de búsqueda.                                                                                                                            |
| `Void ExcludeRect( XInterval left, YInterval top, XInterval right, YInterval bottom )`        | Excluye del área de búsqueda el rectángulo difuso descrito por los rangos `left`, `top`, `right` y `bottom`.                                                                                 |
| `Void ExcludeSet( ImageObjectSet set )`                                                       | Excluye del área de búsqueda el array de rectángulos del conjunto de objetos `set`.                                                                                                          |
| `Void Exclude( HypothesisInstances )`                                                         | Excluye del área de búsqueda la región de las instancias de hipótesis.                                                                                                                       |
| `Void RestrictSearchArea( FuzzyRect fuzzyRect )`                                              | Limita el área de búsqueda al rectángulo difuso `fuzzyRect`. Se utilizan coordenadas globales.                                                                                               |
| `Void RestrictSearchArea( FuzzyRect, IntArray pages )`                                        | Limita el área de búsqueda al rectángulo difuso `fuzzyRect`. Especifique las coordenadas locales y el rango de páginas `pages`.                                                              |
| `Void RestrictSearchArea( FuzzyRect, SearchAreaPageSetType )`                                 | Limita el área de búsqueda al rectángulo difuso `fuzzyRect`. Especifique las coordenadas locales y el rango de páginas del tipo `SearchAreaPageSetType`.                                     |
| `Void RestrictSearchArea( RectArray rectArray )`                                              | Limita el área de búsqueda al array de rectángulos `rectArray`. Se utilizan coordenadas globales.                                                                                            |
| `Void RestrictSearchArea( RectArray, IntArray pages )`                                        | Limita el área de búsqueda al array de rectángulos `rectArray`. Especifique las coordenadas locales y el rango de páginas `pages`.                                                           |
| `Void RestrictSearchArea( RectArray, SearchAreaPageSetType )`                                 | Limita el área de búsqueda al array de rectángulos `rectArray`. Especifique las coordenadas locales y el rango de páginas del tipo `SearchAreaPageSetType`.                                  |
| `Void RestrictSearchArea( Region region )`                                                    | Limita el área de búsqueda a la región `region`. Se utilizan coordenadas globales.                                                                                                           |
| `Void RestrictSearchArea( Region, IntArray pages )`                                           | Limita el área de búsqueda a la región. Especifique las coordenadas locales y el rango de páginas `pages`.                                                                                   |
| `Void RestrictSearchArea( Region, SearchAreaPageSetType )`                                    | Limita el área de búsqueda a la región. Especifique las coordenadas locales y el rango de páginas del tipo `SearchAreaPageSetType`.                                                          |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, IntArray pages )`        | Limita el rango de páginas en el que se realiza la búsqueda sin limitar el área de búsqueda en las propias páginas. El parámetro `pageRestriction` acepta solo un valor: `WholePage`.        |
| `Void RestrictSearchArea( SearchAreaPageRestriction pageRestriction, SearchAreaPageSetType )` | Limita el rango de páginas en el que se realiza la búsqueda sin limitar el área de búsqueda en las propias páginas. El parámetro `pageRestriction` acepta solo un valor: `WholePage`.        |

<Tip>
  Puede usar el alias `RSA` en lugar del nombre completo `RestrictSearchArea`.
</Tip>

<Note>
  Las distintas restricciones para una misma página se aplican conjuntamente, y para páginas diferentes, de forma independiente. (La búsqueda se realiza en las páginas para las que se haya especificado al menos una restricción).
</Note>

<div id="examples-of-limiting-the-search-area">
  ## Ejemplos de cómo limitar el área de búsqueda
</div>

Puede especificar que el área de búsqueda del elemento se encuentre a la derecha del área de intersección formada por los rectángulos difusos `Element1` y `Element2`:

```text theme={null}
FuzzyRect intersection = Element1.FuzzyRect AND Element2.FuzzyRect;
RightOf: intersection;
```

Puede especificar que los límites del área de búsqueda del elemento actual se definan por los límites de los rectángulos de los elementos `ElementName1`, `ElementName2` y `ElementName3`. Si no se detecta alguno de estos elementos, al llamar a esta función se define el área de búsqueda del elemento actual mediante los límites de las áreas de búsqueda de los elementos correspondientes:

```text theme={null}
RestrictSearchArea: RectArray(ElementName1.Rect or ElementName2.Rect or ElementName3.Rect);
```

Puede especificar que el área de búsqueda del elemento actual se limite a la región del elemento `ElementName`:

```text theme={null}
RestrictSearchArea: ElementName.Region;
```

Puede especificar que el elemento se busque en el área de búsqueda de las páginas pares:

```text theme={null}
RestrictSearchArea: searchArea, EvenPages;
```

Puede especificar que el elemento debe buscarse en las páginas 2, 4 y 7-9:

```text theme={null}
RestrictSearchArea: WholePage, 2 << 4 << 7 << 8 << 9;
```

Puede indicar que se debe buscar el elemento en la última página:

```text theme={null}
RestrictSearchArea: WholePage, LastPage;
```

<div id="auxiliary-functions-that-define-the-search-area">
  ## Funciones auxiliares que definen el área de búsqueda
</div>

| Definition         | Description                                                                                                                                                                                                             |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Rect PageRect()`  | El rectángulo de la página actual en coordenadas globales, que se usa para especificar un área de búsqueda que depende de la página. La construcción `PageRect` solo puede usarse para especificar un área de búsqueda. |
| `Int PageNumber()` | El número de la página actual. Úselo para especificar un área de búsqueda que depende de la página.                                                                                                                     |

Para especificar que el elemento se encuentra en la mitad inferior de una página (no se conoce de antemano la página exacta), escriba:

```text theme={null}
Below: PageRect.Top + PageRect.Height / 2;
```

En todos los demás casos, use la expresión `Page( N ).Rect` para obtener el rectángulo de la página número `N`, o `DocumentRect` para obtener el rectángulo de todo el documento. También puede usar la función `PageNumber` para especificar un área de búsqueda que dependa de la página.

Supongamos que tiene un elemento repetitivo `SearchElements.PageHeader`. Para buscar en cada página debajo de cada instancia de este elemento, escriba:

```text theme={null}
Below: SearchElements.PageHeader.AllInstances.PageAreaGlobal( PageNumber ).FuzzyRect, 0 * dot;
```
