Quebras de Linha Incorretas em uma TextBox do Windows Forms

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

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:

Imagem de origem passada para o IronOCR para extração de texto

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

Aplicativo Windows Forms mostrando o texto OCR com suas quebras de linha colapsadas em duas linhas

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

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
$vbLabelText   $csharpLabel

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.

Aplicativo Windows Forms mostrando o texto OCR com suas quebras de linha preservadas corretamente

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Baixar 6,136,090 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.