Retours à la ligne incorrects dans un TextBox de Windows Forms

This article was translated from English: Does it need improvement?
Translated
View the article in English

Le texte OCR extrait avec IronOCR peut perdre ses retours à la ligne lorsqu'il est affiché dans un TextBox de Windows Forms, se contractant sur moins de lignes que l'image source.

La cause est un désaccord de nouvelle ligne. IronOCR renvoie des retours à la ligne sous forme de saut de ligne nu (\n), mais un TextBox de Windows Forms ne rend un retour que lorsqu'il voit un retour chariot suivi d'un saut de ligne (\r\n). Sans le retour chariot, le contrôle ignore le saut.

L'OCR se fait sur une image source comme celle ci-dessous :

Image source passée à IronOCR pour extraire du texte

Liaison du résultat brut de l'OCR directement au contrôle contracte le texte sur quelques lignes au lieu de préserver la disposition originale :

Application Windows Forms affichant le texte OCR avec ses retours à la ligne regroupés sur deux lignes

Solution

1. Utiliser AdvancedScan en mode 64 bits

Installez le paquet IronOcr.Extensions.AdvancedScan pour une extraction plus fiable, et exécutez l'application en mode 64 bits pour éviter les problèmes de compatibilité.

<PackageReference Include="IronOcr.Extensions.AdvancedScan" />
<PackageReference Include="IronOcr.Extensions.AdvancedScan" />
XML

2. Normaliser les fins de ligne

Remplacez chaque \n dans le résultat par \r\n avant d'assigner le texte au contrôle.

ocr.Language = OcrLanguage.ChineseSimplifiedBest;
using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(txtPath.Text);
    ocrInput.Deskew();
    var result = ocr.ReadScreenShot(ocrInput);
    // Replace line feed with carriage return and line feed
    string ocrText = result.Text.Replace("\n", "\r\n");
    // Display the corrected text in a TextBox
    textBox1.Text = ocrText;
}
ocr.Language = OcrLanguage.ChineseSimplifiedBest;
using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(txtPath.Text);
    ocrInput.Deskew();
    var result = ocr.ReadScreenShot(ocrInput);
    // Replace line feed with carriage return and line feed
    string ocrText = result.Text.Replace("\n", "\r\n");
    // Display the corrected text in a TextBox
    textBox1.Text = ocrText;
}
Imports System

ocr.Language = OcrLanguage.ChineseSimplifiedBest
Using ocrInput As New OcrInput()
    ocrInput.LoadImage(txtPath.Text)
    ocrInput.Deskew()
    Dim result = ocr.ReadScreenShot(ocrInput)
    ' Replace line feed with carriage return and line feed
    Dim ocrText As String = result.Text.Replace(vbLf, vbCrLf)
    ' Display the corrected text in a TextBox
    textBox1.Text = ocrText
End Using
$vbLabelText   $csharpLabel

L'appel Replace("\n", "\r\n") réécrit chaque saut de ligne en la paire retour chariot/saut de ligne que TextBox attend, donc le texte affiché conserve la même structure de ligne que l'image originale.

3. Vérifier la sortie

Exécutez à nouveau l'extraction et comparez le contenu TextBox avec l'image source. Les coups doivent maintenant correspondre à la disposition originale.

Application Windows Forms affichant le texte OCR avec ses retours à la ligne correctement préservés

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 6,136,090 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronOcr
lancez un échantillon regardez votre image se transformer en texte consultable.