Saltos de línea incorrectos en un TextBox de Windows Forms
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:

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:

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" />
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
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.


