メインコンテンツへスキップ
このメソッドは、指定した画像ファイルを開き、そのファイルに対応するページをドキュメントに追加します。

構文

C++

HRESULT AddImageFile(
  BSTR               ImageFileName,
  IPrepareImageMode* PrepareMode,
  IIntsCollection*   PageIndices
);

C#

void AddImageFile(
  string           ImageFileName,
  IPrepareImageMode PrepareMode,
  IIntsCollection   PageIndices
);

Visual Basic .NET

Sub AddImageFile( _
  ImageFileName As String, _
  [PrepareMode As IPrepareImageMode = Nothing], _
  [PageIndices As IIntsCollection = Nothing] _
)

パラメーター

ImageFileName [in] この変数には、開く画像ファイルのフルパスが含まれます。 PrepareMode [in] このパラメーターは、画像を開く際にどのように前処理するかを指定する PrepareImageMode オブジェクトを参照します。 PageIndices [in] このパラメーターは、文書に追加するページのインデックスを指定する IntsCollection オブジェクトを参照します。インデックスの重複は許可されません。同じページを複数回追加する場合は、このメソッドを複数回呼び出してください。
このパラメーターは省略可能で、0 を指定することもできます。その場合、開いたファイルのすべてのページが文書に追加されます。

戻り値

このメソッド固有の戻り値はありません。ABBYY FineReader Engine 関数の標準の戻り値が返されます。

注記

  • このメソッドを使用して PDF Portfolio ファイルを開く場合、そのカバーは常に出力ファイルに含まれます。
  • このメソッドは、FRDocument オブジェクトの IConnectionPointContainer インターフェイスに接続されたリスナーにイベントを通知することがあります。
  • Linux および Windows の場合:

サンプル

この Windows サンプルでは、ページ追加処理が長時間かかる場合に、ドキュメントへのページ追加を中止する方法を示します。
// 画像の読み込みに時間がかかりすぎる場合に備えてタイムアウトを有効にする
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;
}
このメソッドは、EventsHandlingドキュメント比較 のコード サンプル、および Windows の ドキュメント比較 デモ ツールで使用されています。

関連項目

FRDocument AddImageFileWithPassword AddImageFileWithPasswordCallback AddImageDocument 画像の処理