Bir Windows Forms Metin Kutusundaki Hatalı Satır Başlangıçları

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

IronOCR kullanılarak çıkarılan OCR metni, bir Windows Forms TextBox içinde gösterildiğinde satır aralıklarını kaybedebilir ve kaynak görüntüden daha az satıra sıkışabilir.

Sebep bir satır sonu uyumsuzluğudur. IronOCR, satır aralıklarını çıplak satır beslemesi (\n) olarak döndürür, ancak bir Windows Forms TextBox sadece bir taşıma satırı ve ardından bir satır beslemesi (\r\n) gördüğünde bir kesme çizer. Taşıma dönüşü olmazsa, kontrol kesmeyi görmezden gelir.

OCR, aşağıdaki gibi bir kaynak görüntüye karşı çalıştırılır:

Metin çıkarmak için IronOCR'a gönderilen kaynak resim

Ham OCR sonucunu kontrolle birleştirmek, metni orijinal düzeni korumak yerine birkaç satıra indirir:

Windows Forms uygulaması, satır başlarının iki satıra indirildiği OCR metnini gösteriyor

Çözüm

1. 64-bit Modunda AdvancedScan Kullan

Daha güvenilir bir çıkarım için IronOcr.Extensions.AdvancedScan paketini yükleyin ve uyumluluk sorunlarından kaçınmak için uygulamayı 64-bit modda çalıştırın.

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

2. Satır Sonlarını Normalleştir

Metni kontrole atamadan önce, sonuçtaki her \n öğesini \r\n ile değiştirin.

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") çağrısı her satır beslemesini, TextBox tarafından beklenen taşıma/satır beslemesi çiftine yeniden yazar, böylece görüntülenen metin, orijinal görüntüyle aynı satır yapısını korur.

3. Çıktıyı Doğrula

Çıkarımı tekrar çalıştırın ve TextBox içeriğini kaynak görüntüyle karşılaştırın. Kesmeler artık orijinal düzenle aynı hizaya gelmelidir.

Windows Forms uygulaması, satır başları doğru korunmuş şekilde OCR metnini gösteriyor

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 6,136,090 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.