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

# FRDocument オブジェクトの AddImageFile メソッド

> ABBYY FineReader Engine API の FRDocument オブジェクトの AddImageFile メソッド — 画像ファイルを開き、そのページをドキュメントに追加します。

このメソッドは、指定した画像ファイルを開き、そのファイルに対応するページをDocumentに追加します。

<div id="syntax">
  ## 構文
</div>

<div id="c">
  ### C++
</div>

```cpp theme={null}
HRESULT AddImageFile(
  BSTR               ImageFileName,
  IPrepareImageMode* PrepareMode,
  IIntsCollection*   PageIndices
);
```

### C\#

```csharp theme={null}
void AddImageFile(
  string           ImageFileName,
  IPrepareImageMode PrepareMode,
  IIntsCollection   PageIndices
);
```

<div id="visual-basic-net">
  ### Visual Basic .NET
</div>

```vb theme={null}
Sub AddImageFile( _
  ImageFileName As String, _
  [PrepareMode As IPrepareImageMode = Nothing], _
  [PageIndices As IIntsCollection = Nothing] _
)
```

<div id="parameters">
  ## パラメーター
</div>

ImageFileName

\[in] この変数には、開く画像ファイルのフルパスが含まれます。

PrepareMode

\[in] このパラメーターは、画像を開く際にどのように前処理するかを指定する [PrepareImageMode](/ja/fine-reader/engine/api-reference/image-related-objects/prepareimagemode) オブジェクトを参照します。

PageIndices

\[in] このパラメーターは、文書に追加するページのインデックスを指定する [IntsCollection](/ja/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection) オブジェクトを参照します。インデックスの重複は許可されません。同じページを複数回追加する場合は、このメソッドを複数回呼び出してください。<br />このパラメーターは省略可能で、0 を指定することもできます。その場合、開いたファイルのすべてのページが文書に追加されます。

<div id="return-values">
  ## 戻り値
</div>

このメソッド固有の戻り値はありません。[ABBYY FineReader Engine 関数の標準の戻り値](/ja/fine-reader/engine/api-reference/return-codes)が返されます。

<div id="remarks">
  ## 注記
</div>

* このメソッドを使用して PDF Portfolio ファイルを開く場合、そのカバーは常に出力ファイルに含まれます。
* このメソッドは、[FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクトの IConnectionPointContainer インターフェイスに接続されたリスナーにイベントを通知することがあります。
* Linux および Windows の場合:
  * ライセンスに [Office Formats Opening](/ja/fine-reader/engine/licensing/modules#officeformatsopening) モジュールが含まれている場合、このメソッドを使用して、[サポートされている形式](/ja/fine-reader/engine/specifications/supported-digital-document-input-formats) のデジタル文書を開くこともできます。
  * [IEngine::MultiProcessingParams](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/properties#multiprocessingparams) プロパティの値によっては、ABBYY FineReader Engine は複数ページの文書を開く処理を CPU コアに分散して実行できます。

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

この Windows サンプルでは、ページ追加処理が長時間かかる場合に、ドキュメントへのページ追加を中止する方法を示します。

<Accordion title="C++ (COM) コード">
  ```cpp theme={null}
  // 画像の読み込みに時間がかかりすぎる場合に備えてタイムアウトを有効にする
  frDocumentCallback.SetShouldTrackTime( true );
  frDocumentCallback.FlushTimer();
  // 画像ファイルを開くために AddImageFile メソッドを呼び出す
  CheckResult( frDocument->AddImageFile( imageFilePath, 0, pageIndices ) );
  // 後続の処理ではタイムアウトを無効にする
  frDocumentCallback.SetShouldTrackTime( false );
  ...
  // イベントを通知するには IFRDocumentEvents Callback インターフェイスを使用する
  class CFRDocumentCallback: public IFRDocumentEvents {
  public:
      CFRDocumentCallback() : startTime( 0 ) {}
   
      // IUnknown メソッドを実装する
      ULONG STDMETHODCALLTYPE AddRef() { return 1; }
      ULONG STDMETHODCALLTYPE Release() { return 1; }
      HRESULT STDMETHODCALLTYPE QueryInterface( REFIID riid, void** ppObject );
      HRESULT STDMETHODCALLTYPE OnProgress( IFRDocument* document, int percentage, VARIANT_BOOL* ShouldContinue );
      HRESULT STDMETHODCALLTYPE OnWarning( IFRDocument* frPage, int pageNumber, BSTR recognizerTip, 
          VARIANT_BOOL* ShouldContinue );
      HRESULT STDMETHODCALLTYPE OnPageProcessed( IFRDocument* document, int pageNumber, PageProcessingStageEnum stage );
      void FlushTimer();
      void SetShouldTrackTime( bool _shouldTrackTime );
  private:
      time_t startTime;
      bool shouldTrackTime = true;
  };
  // startTime をリセットするために FlushTimer メソッドを呼び出す
  void CFRDocumentCallback::FlushTimer() {
      time( &startTime );
  }
  // この Callback はほかのメソッドでも使用される可能性があるため、以降タイムアウトをリセットしたくない場合は shouldTrackTime を FALSE に設定する 
  void CFRDocumentCallback::SetShouldTrackTime( bool _shouldTrackTime ) {
      shouldTrackTime = _shouldTrackTime;
  }
   
  // 現在時刻と "startTime" の差が一定のしきい値を超えると、処理は中止される。AddImageFile メソッドは OnProgress メソッドに percentage の代わりに 0 を渡す
  HRESULT STDMETHODCALLTYPE CFRDocumentCallback::OnProgress( IFRDocument* frDocument, int percentage, 
      VARIANT_BOOL* shouldTerminate )
  {
      if( shouldTrackTime ) {
          time_t currentTime;
          time( ¤tTime );
          double seconds = difftime( currentTime, startTime );
          printf( "%f\n", seconds );
          *shouldTerminate = ( seconds > 100 ? VARIANT_TRUE : VARIANT_FALSE );
      }
      return S_OK;
  }
  ```
</Accordion>

このメソッドは、[EventsHandling](/ja/fine-reader/engine/guided-tour/samples#eventshandling) と [ドキュメント比較](/ja/fine-reader/engine/guided-tour/samples#documentcomparison_linux) のコード サンプル、および Windows の [ドキュメント比較](/ja/fine-reader/engine/guided-tour/samples#documentcomparison) デモ ツールで使用されています。

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

[FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument)

[AddImageFileWithPassword](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilewithpassword-method)

[AddImageFileWithPasswordCallback](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagefilewithpasswordcallback-method)

[AddImageDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/addimagedocument-method)

[画像の処理](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-images)
