> ## 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.

# Objeto Block (interfaz IBlock)

> Objeto Block (interfaz IBlock) en la API de ABBYY FineReader Engine: representa un único bloque en una página reconocida; expone el tipo del bloque (texto, tabla, imagen ráster/vectorial, código de barras, marca de verificación/grupo, separador/grupo), la región, la capa y métodos para convertirlo en subtipos específicos de bloque.

Este objeto representa un único bloque. Al reconocer una página, ABBYY FineReader Engine primero analiza su diseño y detecta en ella bloques de varios tipos. Los bloques determinan cómo se reconocen las áreas de la imagen y, una vez finalizado el reconocimiento, contienen la información reconocida.

Cada bloque de la página pertenece a uno de estos nueve tipos: texto, tabla, imagen ráster, imagen vectorial, código de barras, marca de verificación, grupo de marcas de verificación, separador y grupo de separadores. El tipo de bloque se define mediante la propiedad Type. El objeto Block expone métodos que lo convierten a uno de sus objetos secundarios y, de ese modo, proporcionan acceso a los atributos ampliados de un bloque de un tipo específico.

La posición del bloque en una imagen se define por su región (la propiedad Region) y por la capa a la que pertenece (la propiedad BlockLayerType).

<Warning>
  El bloque que obtenga del diseño de una [FRPage](/es/fine-reader/engine/api-reference/document-related-objects/frpage) dejará de ser válido después de llamar a cualquiera de los métodos que realizan análisis de diseño (como [Analyze](/es/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method) o [Process](/es/fine-reader/engine/api-reference/document-related-objects/frdocument/process-method) ) para esta página o para el documento al que pertenece. Después del análisis, busque el bloque que necesite en el nuevo diseño y continúe trabajando con el nuevo objeto Block.
</Warning>

<div id="properties">
  ## Propiedades
</div>

<table>
  <thead>
    <tr>
      <th>
        <p>
          <strong>Nombre</strong>
        </p>
      </th>

      <th>
        <p>
          <strong>Tipo</strong>
        </p>
      </th>

      <th>
        <p>
          <strong>Descripción</strong>
        </p>
      </th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td>
        <p>
          <strong>Application</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/api-reference/engine-object-iengine-interface">
              Engine
            </a>
          </strong>

          ,{" "}

          <a href="/es/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties#readonly_properties">
            de solo lectura
          </a>
        </p>
      </td>

      <td>
        <p>
          Devuelve el objeto <strong>Engine</strong>.
        </p>
      </td>
    </tr>

    <tr>
      <td colspan="3">
        <p>
          <em>Atributos principales</em>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <a name="region" />

          <strong>Region</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/api-reference/supplementary-objects-and-methods/region">
              Region
            </a>
          </strong>
        </p>
      </td>

      <td>
        <p>
          Proporciona acceso a la{" "}

          <a href="/es/fine-reader/engine/api-reference/supplementary-objects-and-methods/region#region">
            región
          </a>

          {" "}

          del bloque. Una región es una colección de rectángulos. A diferencia de otros tipos de bloques, un bloque de tabla no puede tener más de un rectángulo en su región; por ello, intentar asignar una región con más de un rectángulo a un bloque de tabla generará un error. La región se define mediante las coordenadas de sus rectángulos (en píxeles) sobre el plano{" "}

          <a href="/es/fine-reader/engine/guided-tour/advanced-techniques/working-with-images#black-and-white">
            blanco y negro
          </a>

          {" "}

          corregido de la imagen correspondiente.
        </p>

        <Note>
          La propiedad devuelve un objeto constante. Para cambiar la región del bloque, primero debe obtener un objeto Region intermedio mediante el método{" "}

          <a href="/es/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods">
            IEngine::CreateRegion
          </a>

          , modificar los parámetros necesarios y, a continuación, asignar el objeto obtenido a la propiedad.
        </Note>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <a name="type" />

          <strong>Tipo</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/api-reference/enumerations/blocktypeenum">
              BlockTypeEnum
            </a>
          </strong>

          , de solo lectura
        </p>
      </td>

      <td>
        <p>
          ABBYY FineReader Engine utiliza los siguientes tipos de bloques: texto, tabla, imagen rasterizada, imagen vectorial, código de barras, marca de verificación, grupo de marcas de verificación, separador, grupo de separadores y autoanálisis. (Los bloques de autoanálisis se utilizan únicamente en Visual Components). Cada tipo de bloque tiene sus propias propiedades específicas.
        </p>

        <p>
          El tipo de bloque se define en el momento de la creación y no puede modificarse. Si necesita cambiar el tipo de bloque, deberá eliminar el bloque y crear otro del tipo necesario exactamente en el mismo lugar:
        </p>

        <ol>
          <li value="1">
            Cree un objeto{" "}

            <strong>
              <a href="/es/fine-reader/engine/api-reference/supplementary-objects-and-methods/region">
                Region
              </a>
            </strong>

            {" "}

            mediante el método{" "}

            <strong>
              <a href="/es/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods">
                IEngine::CreateRegion
              </a>
            </strong>

            {" "}

            y copie la región del bloque que desea reemplazar con ayuda del método{" "}

            <strong>
              <a href="/es/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/copyfrom-method">
                IRegion::CopyFrom
              </a>
            </strong>

            .
          </li>

          <li value="2">
            Elimine el bloque anterior del diseño llamando al método{" "}

            <strong>
              <a href="/es/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/deleteat-method">
                ILayoutBlocks::DeleteAt
              </a>
            </strong>

            .
          </li>

          <li value="3">
            Cree un nuevo bloque del tipo requerido y agréguelo a la colección de bloques de diseño mediante el método{" "}

            <strong>
              <a href="/es/fine-reader/engine/api-reference/layout-related-objects/layoutblocks/addnew-method">
                AddNew
              </a>
            </strong>

            {" "}

            del objeto <strong>LayoutBlocks</strong>. Pase el objeto{" "}
            <strong>Region</strong> copiado del bloque anterior como uno de los parámetros requeridos.
          </li>
        </ol>
      </td>
    </tr>

    <tr>
      <td colspan="3">
        <p>
          <em>Atributos adicionales</em>
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <a name="backgroundcolor" />

          <strong>BackgroundColor</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">
              int
            </a>
          </strong>

          , de solo lectura
        </p>
      </td>

      <td>
        <p>Especifica el color de fondo del bloque.</p>

        <Note>
          El valor int se calcula a partir de la tripleta RGB mediante la fórmula: (valor rojo) + (256 x valor verde) + (65536 x valor azul), donde el valor rojo es el primer componente de la tripleta, el valor verde es el segundo componente y el valor azul es el tercer componente. Por ejemplo, el valor int del color blanco es 16777215.
        </Note>

        <p>
          De forma predeterminada, el valor de esta propiedad es -1, lo que indica que el color es transparente.
        </p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <a name="blocklayertype" />

          <strong>BlockLayerType</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/api-reference/enumerations/blocklayertypeenum">
              BlockLayerTypeEnum
            </a>
          </strong>

          , de solo lectura
        </p>
      </td>

      <td>
        <p>
          Especifica la capa del bloque: fondo, primer plano u oculto. Los bloques pueden superponerse; por ejemplo, un bloque de texto puede situarse sobre un bloque de imagen de fondo.
        </p>

        <Note>
          Para{" "}

          <a href="/es/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock">
            RasterPictureBlock
          </a>

          {" "}

          y{" "}

          <a href="/es/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock">
            VectorPictureBlock
          </a>

          , puede cambiar la capa mediante el método{" "}

          <a href="/es/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock/setblocklayertype-method">
            SetBlockLayerType
          </a>

          .
        </Note>

        <p>De forma predeterminada, el valor de esta propiedad es BLT\_Foreground.</p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <a name="description" />

          <strong>Description</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">
              BSTR
            </a>
          </strong>
        </p>
      </td>

      <td>
        <p>Almacena la descripción del bloque.</p>
        <p>De forma predeterminada, el valor de esta propiedad es una cadena vacía.</p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <a name="name" />

          <strong>Name</strong>
        </p>
      </td>

      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties">
              BSTR
            </a>
          </strong>
        </p>
      </td>

      <td>
        <p>Almacena el nombre del bloque. Puede ser una cadena arbitraria.</p>
        <p>De forma predeterminada, el valor de esta propiedad es una cadena vacía.</p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <strong>
            <a href="/es/fine-reader/engine/api-reference/language-related-objects/baselanguage/userproperty-property">
              UserProperty
            </a>
          </strong>
        </p>
      </td>

      <td>
        <p>
          <strong>VARIANT</strong>
        </p>
      </td>

      <td>
        <p>
          Permite asociar información definida por el usuario de cualquier tipo
          con un objeto de tipo <strong>Block </strong>.
        </p>
      </td>
    </tr>
  </tbody>
</table>

<div id="methods">
  ## Métodos
</div>

| Nombre                                                                                                                      | Descripción                                                                                                                                                                                                        |
| --------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [GetAsBarcodeBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getasbarcodeblock-method)             | Devuelve el bloque como un objeto [BarcodeBlock](/es/fine-reader/engine/api-reference/layout-related-objects/barcodeblock). Si el bloque no es un bloque de código de barras, se devuelve NULL.                    |
| [GetAsCheckmarkBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getascheckmarkblock-method)         | Devuelve el bloque como un objeto [CheckmarkBlock](/es/fine-reader/engine/api-reference/layout-related-objects/checkmarkblock). Si el bloque no es un bloque de marca de verificación, se devuelve NULL.           |
| [GetAsCheckmarkGroup](/es/fine-reader/engine/api-reference/layout-related-objects/block/getascheckmarkgroup-method)         | Devuelve el bloque como un objeto [CheckmarkGroup](/es/fine-reader/engine/api-reference/layout-related-objects/checkmarkgroup). Si el bloque no es un bloque de grupo de marcas de verificación, se devuelve NULL. |
| [GetAsRasterPictureBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getasrasterpictureblock-method) | Devuelve el bloque como un objeto [RasterPictureBlock](/es/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock). Si el bloque no es un bloque de imagen ráster, se devuelve NULL.           |
| [GetAsSeparatorBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getasseparatorblock-method)         | Devuelve el bloque como un objeto [SeparatorBlock](/es/fine-reader/engine/api-reference/layout-related-objects/separatorblock). Si el bloque no es un bloque separador, se devuelve NULL.                          |
| [GetAsSeparatorGroup](/es/fine-reader/engine/api-reference/layout-related-objects/block/getasseparatorgroup-method)         | Devuelve el bloque como un objeto [SeparatorGroup](/es/fine-reader/engine/api-reference/layout-related-objects/separatorgroup). Si el bloque no es un bloque de grupo de separadores, se devuelve NULL.            |
| [GetAsTableBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getastableblock-method)                 | Devuelve el bloque como un objeto [TableBlock](/es/fine-reader/engine/api-reference/layout-related-objects/tableblock). Si el bloque no es un bloque de la tabla, se devuelve NULL.                                |
| [GetAsTextBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getastextblock-method)                   | Devuelve el bloque como un objeto [TextBlock](/es/fine-reader/engine/api-reference/layout-related-objects/textblock). Si el bloque no es un bloque de texto, se devuelve NULL.                                     |
| [GetAsVectorPictureBlock](/es/fine-reader/engine/api-reference/layout-related-objects/block/getasvectorpictureblock-method) | Devuelve el bloque como un objeto [VectorPictureBlock](/es/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock). Si el bloque no es un bloque de imagen vectorial, se devuelve NULL.        |
| [Move](/es/fine-reader/engine/api-reference/layout-related-objects/block/move-method)                                       | Desplaza la región del bloque según un vector.                                                                                                                                                                     |

<div id="related-objects">
  ## Objetos relacionados
</div>

<div id="windows">
  ### Windows
</div>

<img src="https://mintcdn.com/abbyy/6udH-pkk8zkVafYH/images/fine-reader/engine/block.gif?s=3581d9bc2321cc7885447b625469f683" alt="Block" width="369" height="322" data-path="images/fine-reader/engine/block.gif" />[](/es/fine-reader/engine/api-reference/layout-related-objects/tablecell#block)[](/es/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property)[](/es/fine-reader/engine/api-reference/layout-related-objects/autoanalysisblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock)[](/es/fine-reader/engine/api-reference/supplementary-objects-and-methods/region)[](/es/fine-reader/engine/api-reference/layout-related-objects/textblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/tableblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/separatorgroup)[](/es/fine-reader/engine/api-reference/layout-related-objects/separatorblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/checkmarkgroup)[](/es/fine-reader/engine/api-reference/layout-related-objects/checkmarkblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/barcodeblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/tablecell)[](/es/fine-reader/engine/api-reference/layout-related-objects/layout)[](/es/fine-reader/engine/api-reference/layout-related-objects/layoutblocks)

<div id="linux-and-macos">
  ### Linux y macOS
</div>

<img src="https://mintcdn.com/abbyy/6udH-pkk8zkVafYH/images/fine-reader/engine/blocklinuxmac.gif?s=413e3a9762d2d4bc7966f82713401e6e" alt="BlockLinuxMac" width="369" height="306" data-path="images/fine-reader/engine/blocklinuxmac.gif" />[](/es/fine-reader/engine/api-reference/layout-related-objects/checkmarkgroup)[](/es/fine-reader/engine/api-reference/layout-related-objects/checkmarkblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/tablecell#block)[](/es/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property)[](/es/fine-reader/engine/api-reference/supplementary-objects-and-methods/region)[](/es/fine-reader/engine/api-reference/layout-related-objects/tablecell)[](/es/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/textblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/tableblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/separatorgroup)[](/es/fine-reader/engine/api-reference/layout-related-objects/separatorblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/barcodeblock)[](/es/fine-reader/engine/api-reference/layout-related-objects/block)[](/es/fine-reader/engine/api-reference/layout-related-objects/layoutblocks)[](/es/fine-reader/engine/api-reference/layout-related-objects/layout)

[Diagrama de objetos](/es/fine-reader/engine/api-reference/object-diagram)

<div id="output-parameter">
  ## Parámetro de salida
</div>

Este objeto es el parámetro de salida de los métodos [Item](/es/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/item-method) y [AddNew](/es/fine-reader/engine/api-reference/layout-related-objects/layoutblocks/addnew-method) del objeto [LayoutBlocks](/es/fine-reader/engine/api-reference/layout-related-objects/layoutblocks).

<div id="samples">
  ## Ejemplos
</div>

<Accordion title="Código C#">
  ```csharp theme={null}
  int picturesCount = 0;
  int suspiciousCharsCount = 0;
  int totalCharsCount = 0;
  int barcodesCount = 0;
  // Calcula el número de caracteres, caracteres sospechosos, imágenes y códigos de barras en un texto
  void computeStatisticsForBlock(FREngine.IBlock block)
  {
   if (block.Type == FREngine.BlockTypeEnum.BT_Table)
   {
    FREngine.ITableBlock tableBlock = block.GetAsTableBlock();
    for (int iCell = 0; iCell < tableBlock.Cells.Count; iCell++)
    {
     computeStatisticsForBlock(tableBlock.Cells[iCell].Block);
    }
   }
   else if (block.Type == FREngine.BlockTypeEnum.BT_Text)
   {
    FREngine.ITextBlock textBlock = block.GetAsTextBlock();
    int paragraphsCount = textBlock.Text.Paragraphs.Count;
    for (int iPar = 0; iPar < paragraphsCount; iPar++)
    {
     FREngine.IParagraph par = textBlock.Text.Paragraphs[iPar];
     string text = par.Text;
     totalCharsCount += text.Length;
     FREngine.ICharParams charParams = engine.CreateCharParams();
     for (int iChar = 0; iChar < text.Length; iChar++)
     {
      par.GetCharParams(iChar, charParams);
      if (charParams.IsSuspicious)
      {
       suspiciousCharsCount++;
      }
     }
    }
   }
   else if (block.Type == FREngine.BlockTypeEnum.BT_RasterPicture || block.Type == FREngine.BlockTypeEnum.BT_VectorPicture)
   {
    picturesCount++;
   }
   else if (block.Type == FREngine.BlockTypeEnum.BT_Barcode)
   {
    barcodesCount++;
   }
  }
  ```
</Accordion>

Este objeto se utiliza en los siguientes ejemplos de código:

* Linux: [CustomLanguage](/es/fine-reader/engine/guided-tour/samples#customlanguage), [CommandLineInterface](/es/fine-reader/engine/guided-tour/samples#commandlineinterface)

* Windows: [CustomLanguage](/es/fine-reader/engine/guided-tour/samples#customlanguage), [CommandLineInterface](/es/fine-reader/engine/guided-tour/samples#commandlineinterface), [RecognizedTextProcessing](/es/fine-reader/engine/guided-tour/samples#recognizedtextprocessing); y en la herramienta de demostración: [Engine Predefined Processing Profiles](/es/fine-reader/engine/guided-tour/samples#engine_predefined_processing_profiles).

<div id="see-also">
  ## Consulte también
</div>

[LayoutBlocks](/es/fine-reader/engine/api-reference/layout-related-objects/layoutblocks)

[Uso de Layout y Blocks](/es/fine-reader/engine/guided-tour/advanced-techniques/working-with-layout-and-blocks)

[Uso de Propiedades](/es/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties)
