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

# AddImageFile-Methode des FRDocument-Objekts

> AddImageFile-Methode des FRDocument-Objekts in der ABBYY FineReader Engine API — Öffnet eine Bilddatei und fügt deren Seiten dem Dokument hinzu.

Diese Methode öffnet eine angegebene Bilddatei und fügt die Seiten der geöffneten Datei einem Dokument hinzu.

<div id="syntax">
  ## 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">
  ## Parameter
</div>

ImageFileName

\[in] Diese Variable enthält den vollständigen Pfad zur zu öffnenden Bilddatei.

PrepareMode

\[in] Dieser Parameter verweist auf das Objekt [PrepareImageMode](/de/fine-reader/engine/api-reference/image-related-objects/prepareimagemode), das angibt, wie ein Bild beim Öffnen vorverarbeitet wird.

PageIndices

\[in] Dieser Parameter verweist auf das Objekt [IntsCollection](/de/fine-reader/engine/api-reference/supplementary-objects-and-methods/intscollection), das die Indizes der Seiten angibt, die einem Dokument hinzugefügt werden sollen. Beachten Sie, dass doppelte Indizes nicht zulässig sind. Um dieselbe Seite mehrfach hinzuzufügen, rufen Sie diese Methode bitte mehrmals auf.<br />Dieser Parameter ist optional und kann 0 sein; in diesem Fall werden alle Seiten der geöffneten Datei dem Dokument hinzugefügt.

<div id="return-values">
  ## Rückgabewerte
</div>

Diese Methode hat keine spezifischen Rückgabewerte. Sie gibt die [Standardrückgabewerte von ABBYY FineReader Engine-Funktionen](/de/fine-reader/engine/api-reference/return-codes) zurück.

<div id="remarks">
  ## Bemerkungen
</div>

* Wenn Sie mit dieser Methode eine PDF Portfolio-Datei öffnen, wird deren Titelseite immer in die Ausgabedatei aufgenommen.
* Diese Methode kann Ereignisse an die Listener weiterleiten, die mit der IConnectionPointContainer-Schnittstelle des [FRDocument](/de/fine-reader/engine/api-reference/document-related-objects/frdocument)-Objekts verbunden sind.
* Für Linux und Windows:
  * Wenn Ihre Lizenz das Modul [Office Formats Opening](/de/fine-reader/engine/licensing/modules#officeformatsopening) enthält, können Sie diese Methode auch verwenden, um digitale Dokumente in [unterstützten Formaten](/de/fine-reader/engine/specifications/supported-digital-document-input-formats) zu öffnen.
  * Abhängig vom Wert der Eigenschaft [IEngine::MultiProcessingParams](/de/fine-reader/engine/api-reference/engine-object-iengine-interface/properties#multiprocessingparams) kann ABBYY FineReader Engine das Öffnen mehrseitiger Dokumente auf die CPU-Kerne verteilen.

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

Dieses Windows-Beispiel zeigt, wie das Hinzufügen einer Seite zu einem Dokument abgebrochen werden kann, wenn der Vorgang zu lange dauert.

<Accordion title="C++ (COM)-Code">
  ```cpp theme={null}
  // Aktivieren Sie das Timeout für den Fall, dass das Laden des Bildes zu lange dauert
  frDocumentCallback.SetShouldTrackTime( true );
  frDocumentCallback.FlushTimer();
  // Rufen Sie die Methode AddImageFile auf, um eine Bilddatei zu öffnen
  CheckResult( frDocument->AddImageFile( imageFilePath, 0, pageIndices ) );
  // Deaktivieren Sie das Timeout für die anschließende Verarbeitung
  frDocumentCallback.SetShouldTrackTime( false );
  ...
  // Verwenden Sie die Callback-Schnittstelle IFRDocumentEvents, um Ereignisse zu melden
  class CFRDocumentCallback: public IFRDocumentEvents {
  public:
      CFRDocumentCallback() : startTime( 0 ) {}
   
      // Implementieren Sie die IUnknown-Methoden
      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;
  };
  // Rufen Sie die Methode FlushTimer auf, um startTime zurückzusetzen
  void CFRDocumentCallback::FlushTimer() {
      time( &startTime );
  }
  // Dieser Callback kann auch in anderen Methoden verwendet werden. Setzen Sie shouldTrackTime daher auf FALSE, wenn Sie das Timeout nicht mehr zurücksetzen möchten 
  void CFRDocumentCallback::SetShouldTrackTime( bool _shouldTrackTime ) {
      shouldTrackTime = _shouldTrackTime;
  }
   
  // Wenn die Differenz zwischen der aktuellen Zeit und "startTime" einen bestimmten Schwellenwert überschreitet, wird der Vorgang abgebrochen. Die Methode AddImageFile übergibt 0 
  anstelle von percentage an die Methode OnProgress
  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>

Diese Methode wird in den Codebeispielen [EventsHandling](/de/fine-reader/engine/guided-tour/samples#eventshandling) und [Document Comparison](/de/fine-reader/engine/guided-tour/samples#documentcomparison_linux) sowie im Windows-Demotool [Document Comparison](/de/fine-reader/engine/guided-tour/samples#documentcomparison) verwendet.

<div id="see-also">
  ## Siehe auch
</div>

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

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

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

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

[Arbeiten mit Bildern](/de/fine-reader/engine/guided-tour/advanced-techniques/working-with-images)
