Quebras de Linha Incorretas em uma TextBox do Windows Forms
O texto extraído por OCR com IronOCR pode perder suas quebras de linha quando mostrado em uma TextBox do Windows Forms, colapsando em menos linhas do que a imagem de origem.
A causa é uma incompatibilidade de nova linha. O IronOCR retorna quebras de linha como um mero avanço de linha (\n), mas uma TextBox do Windows Forms apenas renderiza uma quebra quando vê um retorno de carro seguido de um avanço de linha (\r\n). Sem o retorno de carro, o controle ignora a quebra.
O OCR é executado em uma imagem de origem como a mostrada abaixo:

Vincular o resultado bruto do OCR diretamente ao controle colapsa o texto em algumas linhas em vez de preservar o layout original:

Solução
1. Use AdvancedScan em Modo 64-bit
Instale o pacote IronOcr.Extensions.AdvancedScan para extração mais confiável e execute o aplicativo em modo 64-bit para evitar problemas de compatibilidade.
<PackageReference Include="IronOcr.Extensions.AdvancedScan" />
<PackageReference Include="IronOcr.Extensions.AdvancedScan" />
2. Normalize os Finais de Linha
Substitua cada \n no resultado por \r\n antes de atribuir o texto ao controle.
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
A chamada Replace("\n", "\r\n") reescreve cada avanço de linha no par retorno de carro/avanço de linha que o TextBox espera, para que o texto exibido mantenha a mesma estrutura de linha da imagem original.
3. Verifique a Saída
Execute a extração novamente e compare os conteúdos TextBox com a imagem de origem. As quebras devem agora alinhar-se com o layout original.


