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

# „FindPageSplitPosition-Methode des FRPage-Objekts“

> FindPageSplitPosition-Methode des FRPage-Objekts in der ABBYY FineReader Engine API — ermittelt die Position, an der ein Bild in Seiten aufgeteilt werden kann (zum Beispiel eine Buchdoppelseite); nimmt TextOrientation als Eingabe entgegen.

Diese Methode ermittelt die Trennposition, an der das Bild in Seiten aufgeteilt werden kann, falls eine solche existiert. Sie dient der Erkennung, ob Doppelseiten in einem Buch aufgeteilt werden können.

Um die Trennposition zu ermitteln, an der das Bild aufgeteilt werden kann:

1. Ermitteln Sie die Orientierung des Bildes mithilfe der [IFRPage::DetectOrientation](/de/fine-reader/engine/api-reference/document-related-objects/frpage/detectorientation-method)-Methode.
2. Übergeben Sie das zurückgegebene [TextOrientation](/de/fine-reader/engine/api-reference/text-related-objects/textorientation)-Objekt an die FindPageSplitPosition-Methode.

Die Trennposition wird durch zwei Linien definiert, deren Koordinaten in den Parametern startSplitPosition und endSplitPosition zurückgegeben werden. Der Bildbereich zwischen diesen beiden Linien sollte beim Aufteilen des Bildes in Seiten entfernt werden. Dieser Bereich enthält in der Regel einige Bildstörungen.

<div id="syntax">
  ## Syntax
</div>

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

```cpp theme={null}
HRESULT FindPageSplitPosition(
  IObjectsExtractionParams* ExtractionParams,
  ITextOrientation*         TextOrientation,
  PageSplitDirectionEnum*   SplitDirection,
  int*                      StartSplitPosition,
  int*                      EndSplitPosition
);
```

### C\#

```csharp theme={null}
void FindPageSplitPosition(
  IObjectsExtractionParams    ExtractionParams,
  ITextOrientation            TextOrientation,
  out PageSplitDirectionEnum SplitDirection,
  out int                    StartSplitPosition,
  out int                    EndSplitPosition
);
```

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

```vb theme={null}
Sub FindPageSplitPosition( _
  ExtractionParams As IObjectsExtractionParams, _
  TextOrientation As TextOITextOrientationrientation, _
  ByRef SplitDirection As PageSplitDirectionEnum, _
  ByRef StartSplitPosition As Integer, _
  ByRef EndSplitPosition As Integer _
)
```

<div id="parameters">
  ## Parameter
</div>

ExtractionParams

\[in] Das [ObjectsExtractionParams](/de/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/objectsextractionparams)-Objekt, das die Parameter für die Extraktion von Objekten speichert. Dieser Parameter kann 0 sein. In diesem Fall werden die Objekte mit den Standardparametern extrahiert oder, falls ein [Profil](/de/fine-reader/engine/guided-tour/advanced-techniques/working-with-profiles) geladen wurde, die in diesem Profil festgelegten Parameter verwendet.

TextOrientation

\[in] Bezieht sich auf das [TextOrientation](/de/fine-reader/engine/api-reference/text-related-objects/textorientation)-Objekt, das die Orientierung des Texts auf dem Bild angibt. Wenn dieser Parameter 0 ist, geht ABBYY FineReader Engine davon aus, dass das Bild eine normale Orientierung aufweist.

SplitDirection

\[out] Diese Variable erhält den Typ der möglichen Spaltung: vertikale Spaltung, horizontale Spaltung oder keine Spaltung. Siehe die Beschreibung der [PageSplitDirectionEnum](/de/fine-reader/engine/api-reference/enumerations/pagesplitdirectionenum) für Details.

StartSplitPosition

\[out] Die Koordinate der ersten Linie, die die Trennposition definiert (falls eine Spaltung möglich ist). Die Bedeutung dieses Werts hängt vom Wert der Variable splitDirection ab. Wird eine vertikale Spaltung erkannt, enthält sie die horizontale Koordinate der Spaltlinie. Wird eine horizontale Spaltung erkannt, enthält sie die vertikale Koordinate der Spaltlinie. Die Koordinate wird relativ zur schwarz-weißen, der Schieflage korrigierten Seite des Bildes angegeben.

EndSplitPosition

\[out] Die Koordinate der zweiten Linie, die die Trennposition definiert (falls eine Spaltung möglich ist). Die Bedeutung dieses Werts hängt vom Wert der Variable splitDirection ab. Wird eine vertikale Spaltung erkannt, enthält sie die horizontale Koordinate der Spaltlinie. Wird eine horizontale Spaltung erkannt, enthält sie die vertikale Koordinate der Spaltlinie. Die Koordinate wird relativ zur schwarz-weißen, der Schieflage korrigierten Seite des Bildes angegeben.

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

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

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

<Accordion title="C#-Code">
  ```csharp theme={null}
  private bool splitImage(FREngine.IFRPage page, FREngine.IFRDocument frDoc, FREngine.IPageProcessingParams ppp)
  {
   int splitStartPosition = 0;
   int splitEndPosition = 0;
   bool isVerticalSplit = true;
   // Textorientierung erkennen
   FREngine.ITextOrientation ori = page.DetectOrientation(null, ppp.ObjectsExtractionParams, ppp.RecognizerParams);
   // Trennposition finden
   FREngine.PageSplitDirectionEnum pageSplitDirection;
   page.FindPageSplitPosition(ppp.ObjectsExtractionParams, ori, out pageSplitDirection, out splitStartPosition, out splitEndPosition);
   if (pageSplitDirection == FREngine.PageSplitDirectionEnum.PSD_NoSplit)
   {
    return false;
   }
   else if (pageSplitDirection == FREngine.PageSplitDirectionEnum.PSD_HorizontalSplit)
   {
    isVerticalSplit = false;
   }
   // Das Bild in zwei Seiten teilen
   // Bildabmessungen
   int width = page.ImageDocument.ColorImage.Width;
   int height = page.ImageDocument.ColorImage.Height;
   // Seite duplizieren
   frDoc.AddPage(page);
   FREngine.IFRPage secondPage = frDoc.Pages[frDoc.Pages.Count - 1];
   // Erste und zweite Seite zuschneiden
   FREngine.IImageModification firstModification = engine.CreateImageModification();
   FREngine.IRegion firstClipRegion = engine.CreateRegion();
   FREngine.IImageModification secondModification = engine.CreateImageModification();
   FREngine.IRegion secondClipRegion = engine.CreateRegion();
   if (isVerticalSplit)
   {
    firstClipRegion.AddRect(0, 0, splitStartPosition, height - 1 );
    secondClipRegion.AddRect(splitEndPosition, 0, width - 1, height - 1);
   }
   else
   {
    firstClipRegion.AddRect(0, 0, width - 1, splitStartPosition);
    secondClipRegion.AddRect(0, splitEndPosition, width - 1, height - 1);
   }
   firstModification.AddClipRegion(firstClipRegion);
   page.ImageDocument.Modify(firstModification);
   secondModification.AddClipRegion(secondClipRegion);
   secondPage.ImageDocument.Modify(secondModification);
   return true;
  }
  ```
</Accordion>

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

[FRPage](/de/fine-reader/engine/api-reference/document-related-objects/frpage)

[DetectOrientation](/de/fine-reader/engine/api-reference/document-related-objects/frpage/detectorientation-method)

[PageSplitDirectionEnum](/de/fine-reader/engine/api-reference/enumerations/pagesplitdirectionenum)

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