Windows Forms TextBox에서 잘못된 줄 바꿈

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

IronOCR로 추출된 OCR 텍스트는 Windows Forms TextBox에 표시될 때 줄 바꿈을 잃고 원본 이미지보다 적은 줄에 압축될 수 있습니다.

원인은 새줄 일치 오류입니다. IronOCR은 줄 바꿈을 단순한 줄바꾸기 (\n)로 반환하지만, Windows Forms TextBox은 줄바캐리지 리턴이 줄바꾸기족에 이어질 때만 줄 바꿈을 렌더링합니다 (\r\n). 캐리지 리턴이 없으면, 제어기는 줄 바꿈을 무시합니다.

OCR은 아래와 같은 소스 이미지에 대해 실행됩니다:

IronOCR로 텍스트 추출을 위해 전달된 소스 이미지

원시 OCR 결과를 바로 컨트롤에 바인딩하면 텍스트가 몇 줄로 압축되어 원본 레이아웃을 유지하지 않습니다:

줄 바꿈이 두 줄로 압축된 OCR 텍스트를 보여주는 Windows Forms 애플리케이션

해결책

1. 64비트 모드에서 AdvancedScan 사용

보다 신뢰성 있는 추출을 위해 IronOcr.Extensions.AdvancedScan 패키지를 설치하고, 호환성 문제를 피하기 위해 앱을 64비트 모드에서 실행하십시오.

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

2. 줄 끝 정상화

결과 내의 모든 \n\r\n으로 대체한 후 텍스트를 컨트롤에 할당하십시오.

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

Replace("\n", "\r\n") 호출은 각 줄바꾸기를 TextBox이 기대하는 캐리지 리턴/줄바꾸기 쌍으로 재작성하므로, 표시된 텍스트는 원본 이미지와 동일한 줄 구조를 유지합니다.

3. 출력 확인

추출을 다시 수행하고 TextBox 내용을 소스 이미지와 비교하십시오. 이제 줄 바꿈이 원본 레이아웃과 맞아야 합니다.

줄 바꿈이 올바르게 유지된 OCR 텍스트를 보여주는 Windows Forms 애플리케이션

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

시작할 준비 되셨나요?
Nuget 다운로드 6,136,090 | 버전: 2026.7 방금 출시
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronOcr
샘플을 실행하세요 이미지가 검색 가능한 텍스트로 바뀌는 것을 확인해 보세요.