Saltos de línea incorrectos en un TextBox de Windows Forms

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

El texto extraído con IronOCR puede perder sus saltos de línea cuando se muestra en un Windows Forms TextBox, colapsando en menos líneas que la imagen fuente.

La causa es una descoincidencia de nueva línea. IronOCR devuelve saltos de línea como un salto de línea simple (\n), pero un Windows Forms TextBox solo representa un salto cuando ve un retorno de carro seguido de un salto de línea (\r\n). Sin el retorno de carro, el control ignora el salto.

El OCR se ejecuta contra una imagen fuente como la que se muestra a continuación:

Imagen fuente pasada a IronOCR para la extracción de texto

Vincular el resultado de OCR en bruto directamente al control colapsa el texto en un par de líneas en lugar de preservar el diseño original:

Aplicación de Windows Forms mostrando el texto OCR con sus saltos de línea colapsados en dos líneas

Solución

1. Usa AdvancedScan en modo de 64 bits

Instale el paquete IronOcr.Extensions.AdvancedScan para una extracción más confiable, y ejecute la aplicación en modo de 64 bits para evitar problemas de compatibilidad.

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

2. Normaliza los finales de línea

Reemplace cada \n en el resultado con \r\n antes de asignar el texto al control.

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

La llamada Replace("\n", "\r\n") reescribe cada salto de línea en el par de retorno de carro/salto de línea que el TextBox espera, para que el texto mostrado mantenga la misma estructura de línea que la imagen original.

3. Verifica el resultado

Ejecute la extracción nuevamente y compare el contenido de TextBox con la imagen fuente. Los saltos ahora deberían alinearse con el diseño original.

Aplicación de Windows Forms mostrando el texto OCR con sus saltos de línea correctamente preservados

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 6,136,090 | Versión: 2026.7 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronOcr
ejecuta una muestra y observa cómo tu imagen se convierte en texto buscable.