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

# Block オブジェクト（IBlock インターフェイス）

> ABBYY FineReader Engine API の Block オブジェクト（IBlock インターフェイス）— 認識済みページ上の単一のブロックを表します。ブロックの型（テキスト、テーブル、ラスター画像/ベクター画像、バーコード、チェックマーク/グループ、セパレーター/グループ）、領域、レイヤー、および特定のブロックのサブタイプにキャストするためのメソッドを公開します。

このオブジェクトは、単一のブロックを表します。ページを認識する際、ABBYY FineReader Engine はまずページのレイアウトを解析し、ページ上のさまざまな型のブロックを検出します。ブロックは画像領域の認識方法を決定し、認識後は認識された情報を保持します。

ページ上の各ブロックは、text、table、ラスター画像、ベクター画像、バーコード、チェックマーク、チェックマークの group、セパレーター、セパレーターの group の9つの型のいずれかに属します。ブロックの型は Type プロパティで定義されます。Block オブジェクトは、自身を子オブジェクトのいずれかに型変換するメソッドを提供しており、これにより特定の型のブロックの拡張属性にアクセスできます。

画像上のブロックの位置は、その領域 (Region プロパティ) と、そのブロックが属するレイヤー (BlockLayerType プロパティ) によって定義されます。

<Warning>
  [FRPage](/ja/fine-reader/engine/api-reference/document-related-objects/frpage) のレイアウトから取得したブロックは、このページ、またはそのページが属するドキュメントに対してレイアウト解析を実行するいずれかのメソッド ([Analyze](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/analyze-method) や [Process](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/process-method) など) を呼び出すと無効になります。解析後は、新しいレイアウト内で必要なブロックを見つけ、新しい Block オブジェクトを使用して作業を続けてください。
</Warning>

<div id="properties">
  ## プロパティ
</div>

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

      <th>
        <p>
          <strong>型</strong>
        </p>
      </th>

      <th>
        <p>
          <strong>説明</strong>
        </p>
      </th>
    </tr>
  </thead>

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

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

          ,{" "}

          <a href="/ja/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties#readonly_properties">
            read-only
          </a>
        </p>
      </td>

      <td>
        <p>
          <strong>Engine</strong> オブジェクトを返します。
        </p>
      </td>
    </tr>

    <tr>
      <td colspan="3">
        <p>
          <em>主な属性</em>
        </p>
      </td>
    </tr>

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

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

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

      <td>
        <p>
          ブロックの{" "}

          <a href="/ja/fine-reader/engine/api-reference/supplementary-objects-and-methods/region#region">
            region
          </a>

          へのアクセスを提供します。region は矩形のコレクションです。他のブロック型とは異なり、テーブルブロックの region に含められる矩形は最大1つです。そのため、複数の矩形を含む region をテーブルブロックに割り当てようとするとエラーが発生します。region は、対応する画像の傾き補正済み{" "}

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

          {" "}

          プレーン上における矩形の座標 (ピクセル単位) によって定義されます。
        </p>

        <Note>
          このプロパティは定数オブジェクトを返します。ブロックの region を変更するには、まず{" "}

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

          {" "}

          メソッドを使用して中間の Region オブジェクトを取得し、必要なパラメーターを変更したうえで、取得したオブジェクトをプロパティに割り当ててください。
        </Note>
      </td>
    </tr>

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

          <strong>型</strong>
        </p>
      </td>

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

          , read-only
        </p>
      </td>

      <td>
        <p>
          ABBYY FineReader Engine では、テキスト、テーブル、ラスター画像、ベクター画像、バーコード、チェックマーク、チェックマークグループ、区切り線、区切り線グループ、および自動解析というブロック型が使用されます (自動解析ブロックはビジュアルコンポーネントでのみ使用されます) 。各ブロック型には固有のプロパティがあります。
        </p>

        <p>
          ブロック型は作成時に決定され、後から変更することはできません。ブロック型を変更する必要がある場合は、既存のブロックを削除し、まったく同じ場所に必要な型の新しいブロックを作成してください。
        </p>

        <ol>
          <li value="1">
            <strong>
              <a href="/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods">
                IEngine::CreateRegion
              </a>
            </strong>

            {" "}

            メソッドを使用して{" "}

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

            {" "}

            オブジェクトを作成し、{" "}

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

            {" "}

            メソッドを使用して、置き換えるブロックの region をコピーします。
          </li>

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

            {" "}

            メソッドを呼び出して、レイアウトから古いブロックを削除します。
          </li>

          <li value="3">
            必要な型の新しいブロックを作成し、<strong>LayoutBlocks</strong> オブジェクトの{" "}

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

            {" "}

            メソッドを使用してレイアウトブロックのコレクションに追加します。古いブロックからコピーした <strong>Region</strong> を必須パラメーターの1つとして渡します。
          </li>
        </ol>
      </td>
    </tr>

    <tr>
      <td colspan="3">
        <p>
          <em>追加属性</em>
        </p>
      </td>
    </tr>

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

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

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

          , read-only
        </p>
      </td>

      <td>
        <p>ブロックの背景色を指定します。</p>

        <Note>
          int 値は、次の式を使用して RGB トリプレットから計算されます： (赤の値) + (256 × 緑の値) + (65536 × 青の値) 。ここで、赤の値はトリプレットの第1成分、緑の値は第2成分、青の値は第3成分です。たとえば、白の int 値は 16777215 です。
        </Note>

        <p>
          デフォルトでは、このプロパティの値は -1 で、色が透明であることを示します。
        </p>
      </td>
    </tr>

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

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

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

          , read-only
        </p>
      </td>

      <td>
        <p>
          ブロックのレイヤー (背景、前景、または非表示) を指定します。ブロックは重ね合わせることができます。たとえば、テキストブロックを背景の画像ブロックの上に重ねることができます。
        </p>

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

          {" "}

          および{" "}

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

          {" "}

          については、{" "}

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

          {" "}

          メソッドを使用してレイヤーを変更できます。
        </Note>

        <p>デフォルトでは、このプロパティの値は BLT\_Foreground です。</p>
      </td>
    </tr>

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

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

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

      <td>
        <p>ブロックの説明を格納します。</p>
        <p>デフォルトでは、このプロパティの値は空の文字列です。</p>
      </td>
    </tr>

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

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

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

      <td>
        <p>ブロックの名前を格納します。任意の文字列を使用できます。</p>
        <p>デフォルトでは、このプロパティの値は空の文字列です。</p>
      </td>
    </tr>

    <tr>
      <td>
        <p>
          <strong>
            <a href="/ja/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>
          任意の型のユーザー定義情報を <strong>Block </strong>型のオブジェクトに関連付けることができます。
        </p>
      </td>
    </tr>
  </tbody>
</table>

<div id="methods">
  ## メソッド
</div>

| 名前                                                                                                                          | 説明                                                                                                                                                          |
| --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [GetAsBarcodeBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getasbarcodeblock-method)             | ブロックを [BarcodeBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/barcodeblock) オブジェクトとして返します。ブロックがバーコード ブロックでない場合は、NULL が返されます。             |
| [GetAsCheckmarkBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getascheckmarkblock-method)         | ブロックを [CheckmarkBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/checkmarkblock) オブジェクトとして返します。ブロックがチェックマーク ブロックでない場合は、NULL が返されます。       |
| [GetAsCheckmarkGroup](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getascheckmarkgroup-method)         | ブロックを [CheckmarkGroup](/ja/fine-reader/engine/api-reference/layout-related-objects/checkmarkgroup) オブジェクトとして返します。ブロックがチェックマーク グループ ブロックでない場合は、NULL が返されます。  |
| [GetAsRasterPictureBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getasrasterpictureblock-method) | ブロックを [RasterPictureBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock) オブジェクトとして返します。ブロックがラスター画像ブロックでない場合は、NULL が返されます。 |
| [GetAsSeparatorBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getasseparatorblock-method)         | ブロックを [SeparatorBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/separatorblock) オブジェクトとして返します。ブロックがセパレーター ブロックでない場合は、NULL が返されます。        |
| [GetAsSeparatorGroup](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getasseparatorgroup-method)         | ブロックを [SeparatorGroup](/ja/fine-reader/engine/api-reference/layout-related-objects/separatorgroup) オブジェクトとして返します。ブロックがセパレーター グループ ブロックでない場合は、NULL が返されます。   |
| [GetAsTableBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getastableblock-method)                 | ブロックを [TableBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/tableblock) オブジェクトとして返します。ブロックがテーブルブロックでない場合は、NULL が返されます。                   |
| [GetAsTextBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getastextblock-method)                   | ブロックを [TextBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock) オブジェクトとして返します。ブロックがテキスト ブロックでない場合は、NULL が返されます。                    |
| [GetAsVectorPictureBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/block/getasvectorpictureblock-method) | ブロックを [VectorPictureBlock](/ja/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock) オブジェクトとして返します。ブロックがベクター画像ブロックでない場合は、NULL が返されます。 |
| [Move](/ja/fine-reader/engine/api-reference/layout-related-objects/block/move-method)                                       | ブロックの領域を指定したベクトル分だけ移動します。                                                                                                                                   |

<div id="related-objects">
  ## 関連オブジェクト
</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" />[](/ja/fine-reader/engine/api-reference/layout-related-objects/tablecell#block)[](/ja/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property)[](/ja/fine-reader/engine/api-reference/layout-related-objects/autoanalysisblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock)[](/ja/fine-reader/engine/api-reference/supplementary-objects-and-methods/region)[](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/tableblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/separatorgroup)[](/ja/fine-reader/engine/api-reference/layout-related-objects/separatorblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/checkmarkgroup)[](/ja/fine-reader/engine/api-reference/layout-related-objects/checkmarkblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/barcodeblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/tablecell)[](/ja/fine-reader/engine/api-reference/layout-related-objects/layout)[](/ja/fine-reader/engine/api-reference/layout-related-objects/layoutblocks)

<div id="linux-and-macos">
  ### Linux および 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" />[](/ja/fine-reader/engine/api-reference/layout-related-objects/checkmarkgroup)[](/ja/fine-reader/engine/api-reference/layout-related-objects/checkmarkblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/tablecell#block)[](/ja/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/element-property)[](/ja/fine-reader/engine/api-reference/supplementary-objects-and-methods/region)[](/ja/fine-reader/engine/api-reference/layout-related-objects/tablecell)[](/ja/fine-reader/engine/api-reference/layout-related-objects/vectorpictureblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/textblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/tableblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/separatorgroup)[](/ja/fine-reader/engine/api-reference/layout-related-objects/separatorblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/rasterpictureblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/barcodeblock)[](/ja/fine-reader/engine/api-reference/layout-related-objects/block)[](/ja/fine-reader/engine/api-reference/layout-related-objects/layoutblocks)[](/ja/fine-reader/engine/api-reference/layout-related-objects/layout)

[オブジェクト図](/ja/fine-reader/engine/api-reference/object-diagram)

<div id="output-parameter">
  ## 出力パラメーター
</div>

このオブジェクトは、[LayoutBlocks](/ja/fine-reader/engine/api-reference/layout-related-objects/layoutblocks)オブジェクトの[Item](/ja/fine-reader/engine/visual-components-reference/supplementary-objects/spellwordcollection/item-method)メソッドおよび[AddNew](/ja/fine-reader/engine/api-reference/layout-related-objects/layoutblocks/addnew-method)メソッドの出力パラメーターです。

<div id="samples">
  ## サンプル
</div>

<Accordion title="C# コード">
  ```csharp theme={null}
  int picturesCount = 0;
  int suspiciousCharsCount = 0;
  int totalCharsCount = 0;
  int barcodesCount = 0;
  // テキスト内の文字数、疑わしい文字数、画像数、バーコード数を計算します
  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>

このオブジェクトは、次のコード サンプルで使用されています。

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

* Windows: [CustomLanguage](/ja/fine-reader/engine/guided-tour/samples#customlanguage), [CommandLineInterface](/ja/fine-reader/engine/guided-tour/samples#commandlineinterface), [RecognizedTextProcessing](/ja/fine-reader/engine/guided-tour/samples#recognizedtextprocessing)、およびデモ ツール: [Engine の定義済み処理プロファイル](/ja/fine-reader/engine/guided-tour/samples#engine_predefined_processing_profiles)。

<div id="see-also">
  ## 関連項目
</div>

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

[Layout と Block の操作](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-layout-and-blocks)

[プロパティ の操作](/ja/fine-reader/engine/guided-tour/advanced-techniques/programming-aspects/working-with-properties)
