IRONSOFTWAREHOME

IronOCR ile C#'ta İlerleme Takibini Nasıl Kullanılır

Curtis Chau
Curtis Chau
Updated: 29 Haziran 2026

IronOCR, geliştiricilerin okuma ilerlemesini OcrProgress olayı aracılığıyla izlemelerine olanak tanıyan olay tabanlı bir ilerleme izleme sistemi sağlar ve tamamlanma yüzdesi, işlenen sayfalar ve zaman ölçümlerini gerçek zamanlı olarak rapor eder.

Hızlı Başlangıç: OcrProgress'e Abone Olun ve PDF Okuyun

Bu örnek, IronOCR ile OCR ilerlemesini nasıl izleyeceğinizi gösterir: yerleşik OcrProgress olayına abone olun ve bir PDF okurken yüzde, tamamlanan sayfalar ve toplam sayfalar dahil anlık geri bildirim alın. Başlamak için sadece birkaç satır yeterlidir.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Bu kod parçacığını kopyalayın ve çalıştırın.

    var ocr = new IronOcr.IronTesseract();
    ocr.OcrProgress += (s, e) => Console.WriteLine(e.ProgressPercent + "% (" + e.PagesComplete + "/" + e.TotalPages + ")");
    var result = ocr.Read(new IronOcr.OcrInput().LoadPdf("file.pdf"));
    C#
  3. 3Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
    arrow pointer

OCR Uygulamamda İlerleme Takibini Nasıl Uygularım?

Geniş belgeleri veya dosya gruplarını OCR ile işlerken ilerlemenin takibi önemlidir. OcrProgress olayı, okuma sürecinde ilerleme güncellemeleri almak için abone olunabilir. Bu, özellikle PDF OCR işlemleri ve çok sayfalı TIFF dosyaları ile çalışırken kullanışlıdır.

Etkinlik, başlangıç ​​saati, toplam sayfa sayısı, yüzde cinsinden ilerleme, süre ve bitiş saati gibi OCR işinin ilerlemesi hakkında bilgi içeren bir örnek geçirir. Async işlemleri ile sorunsuz çalışır ve performansı artırmak için çoklu iş parçacığı ile birleştirilebilir.

Aşağıdaki örnek, bu belgeyi örnek olarak kullanır: "Biyolojik Çeşitlilik Araştırmalarında Deneyimler: Bir Saha Kursu" yazan Thea B. Gessler, Iowa State Üniversitesi.

using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

// Subscribe to OcrProgress event
ocrTesseract.OcrProgress += (_, ocrProgressEventsArgs) =>
{
    Console.WriteLine("Start time: " + ocrProgressEventsArgs.StartTimeUTC.ToString());
    Console.WriteLine("Total pages number: " + ocrProgressEventsArgs.TotalPages);
    Console.WriteLine("Progress(%) | Duration");
    Console.WriteLine("    " + ocrProgressEventsArgs.ProgressPercent + "%     | " + ocrProgressEventsArgs.Duration.TotalSeconds + "s");
    Console.WriteLine("End time: " + ocrProgressEventsArgs.EndTimeUTC.ToString());
    Console.WriteLine("----------------------------------------------");
};

using var input = new OcrInput();
input.LoadPdf("Experiences-in-Biodiversity-Research-A-Field-Course.pdf");

// Progress events will fire during the read operation
var result = ocrTesseract.Read(input);
Konsol çıktısı, 95%'ten 100%'e kadar tamamlama ilerleyişini zaman damgaları ve süre bilgileriyle gösteriyor

Etkinlikten Hangi İlerleme Bilgilerine Ulaşabilirim?

OcrProgress olayı, OCR performansını izlemek ve optimize etmek için yardımcı kapsamlı ilerleme verileri sağlar. Her bir özellik, işlemi izlemek için belirli bir amaca hizmet eder:

  • ProgressPercent: OCR işinin tamamlanan sayfaların yüzdesi olarak ilerlemesi, 0 ile 100 arasında değişir. GUI uygulamalarında ilerleme çubuklarını güncellemek için kullanışlıdır.
  • TotalPages: OCR motoru tarafından işlenen toplam sayfa sayısı. Tahmini tamamlanma sürelerini hesaplamak için gereklidir.
  • PagesComplete: OCR okumasının tamamen tamamlandığı sayfa sayısı. Bu sayı, sayfalar işlendiğinde kademeli olarak artar.
  • Duration: OCR işinin toplam süresi, tüm sürecin tamamlanması için geçen süreyi belirtir. Ölçümler TimeSpan formatında ölçülür ve olay tetiklendiğinde her seferinde güncellenir.
  • StartTimeUTC: OCR işinin başladığı tarih ve saat, Eşgüdümlü Evrensel Zaman (UTC) formatında temsil edilir.
  • EndTimeUTC: OCR işinin %100 tamamlandığı tarih ve saat, UTC formatında. Bu özellik, OCR işlemi devam ederken boş (null) olur ve işlem tamamlandığında doldurulur.

Gelişmiş İlerleme Takibi Uygulaması

Üretim uygulamaları için daha sofistike ilerleme takibi uygulayın. Bu örnek, hata yönetimi ve ayrıntılı loglamayı içerir:

using IronOcr;
using System;
using System.Diagnostics;

public class OcrProgressTracker
{
    private readonly IronTesseract _tesseract;
    private Stopwatch _stopwatch;
    private int _lastReportedPercent = 0;

    public OcrProgressTracker()
    {
        _tesseract = new IronTesseract();
        
        // Configure for optimal performance
        _tesseract.Language = OcrLanguage.EnglishBest;
        _tesseract.Configuration.ReadBarCodes = false;
        
        // Subscribe to progress event
        _tesseract.OcrProgress += OnOcrProgress;
    }

    private void OnOcrProgress(object sender, OcrProgressEventsArgs e)
    {
        // Only report significant progress changes (every 10%)
        if (e.ProgressPercent - _lastReportedPercent >= 10 || e.ProgressPercent == 100)
        {
            _lastReportedPercent = e.ProgressPercent;
            
            Console.WriteLine($"Progress: {e.ProgressPercent}%");
            Console.WriteLine($"Pages: {e.PagesComplete}/{e.TotalPages}");
            Console.WriteLine($"Elapsed: {e.Duration.TotalSeconds:F1}s");
            
            // Estimate remaining time
            if (e.ProgressPercent > 0 && e.ProgressPercent < 100)
            {
                var estimatedTotal = e.Duration.TotalSeconds / (e.ProgressPercent / 100.0);
                var remaining = estimatedTotal - e.Duration.TotalSeconds;
                Console.WriteLine($"Estimated remaining: {remaining:F1}s");
            }
            
            Console.WriteLine("---");
        }
    }

    public OcrResult ProcessDocument(string filePath)
    {
        _stopwatch = Stopwatch.StartNew();
        
        using var input = new OcrInput();
        input.LoadPdf(filePath);
        
        // Apply image filters for better accuracy
        input.Deskew();
        input.DeNoise();
        
        var result = _tesseract.Read(input);
        
        _stopwatch.Stop();
        Console.WriteLine($"Total processing time: {_stopwatch.Elapsed.TotalSeconds:F1}s");
        
        return result;
    }
}

İlerleme Takibini UI Uygulamalarıyla Entegre Etme

Windows Forms veya WPF ile masaüstü uygulamaları geliştirirken, ilerleme takibi kullanıcı deneyimi için hayati önem taşır. İlerleme olayı, UI öğelerini güvenli bir şekilde güncelleyebilir:

using System;
using System.Windows.Forms;
using IronOcr;

public partial class OcrForm : Form
{
    private IronTesseract _tesseract;
    private ProgressBar progressBar;
    private Label statusLabel;

    public OcrForm()
    {
        InitializeComponent();
        _tesseract = new IronTesseract();
        _tesseract.OcrProgress += UpdateProgress;
    }

    private void UpdateProgress(object sender, OcrProgressEventsArgs e)
    {
        // Ensure UI updates happen on the main thread
        if (InvokeRequired)
        {
            BeginInvoke(new Action(() => UpdateProgress(sender, e)));
            return;
        }

        progressBar.Value = e.ProgressPercent;
        statusLabel.Text = $"Processing page {e.PagesComplete} of {e.TotalPages}";
        
        // Show completion message
        if (e.ProgressPercent == 100)
        {
            MessageBox.Show($"OCR completed in {e.Duration.TotalSeconds:F1} seconds");
        }
    }
}

Büyük Belgelerle Çalışma ve Zaman Aşımı

Geniş belgeleri işlerken, ilerleme takibi çok daha değerli hale gelir. Timeout ayarları ile birleştirin ve daha iyi kontrol için abort tokenları kullanın:

using IronOcr;
using System;
using System.Threading;

public async Task ProcessLargeDocumentWithTimeout()
{
    var cts = new CancellationTokenSource();
    var tesseract = new IronTesseract();
    
    // Set a timeout of 5 minutes
    cts.CancelAfter(TimeSpan.FromMinutes(5));
    
    tesseract.OcrProgress += (s, e) =>
    {
        Console.WriteLine($"Progress: {e.ProgressPercent}% - Page {e.PagesComplete}/{e.TotalPages}");
        
        // Check if we should cancel based on progress
        if (e.Duration.TotalMinutes > 4 && e.ProgressPercent < 50)
        {
            Console.WriteLine("Processing too slow, cancelling...");
            cts.Cancel();
        }
    };
    
    try
    {
        using var input = new OcrInput();
        input.LoadPdf("large-document.pdf");
        
        var result = await Task.Run(() => 
            tesseract.Read(input, cts.Token), cts.Token);
            
        Console.WriteLine("OCR completed successfully");
    }
    catch (OperationCanceledException)
    {
        Console.WriteLine("OCR operation was cancelled");
    }
}

İlerleme Takibi için En İyi Uygulamalar

  1. Güncellemelerin Sıklığı: OcrProgress olayı işleme sırasında sık sık tetiklenir. Arayüzünüzü veya günlüklerinizi bunaltmamak için güncellemeleri filtrelemeyi düşünün.

  2. Performans Etkisi: İlerleme takibinin performansa minimal etkisi vardır, ancak aşırı kayıt veya kullanıcı arayüzü güncellemeleri OCR sürecini yavaşlatabilir.

  3. Bellek Yönetimi: Büyük TIFF dosyaları veya PDF'ler için, en iyi performansı sağlamak amacıyla ilerleme ile birlikte bellek kullanımını izleyin.

  4. Hata Yönetimi: OCR sürecini aksatabilecek istisnaları önlemek için ilerleme durumu olay işleyicilerinizde daima hata yönetimi kullanın.

  5. İş Parçacığı Güvenliği: İlerleme etkinliğinden gelen UI öğelerini güncellerken, Invoke veya BeginInvoke yöntemlerini kullanarak doğru iş parçacığı senkronizasyonunu sağlayın.

Sonuç

IronOCR'de ilerleme takibi, OCR işlemleri üzerinde önemli bir görünürlük sağlar ve geliştiricilerin kullanıcıları işlem durumu hakkında bilgilendiren duyarlı uygulamalar oluşturmasına olanak tanır. OcrProgress olayını etkili bir şekilde kullanarak, tek sayfalık belgelerden kapsamlı PDF dosyalarına kadar her şeyi güvenle ele alan profesyonel uygulamalar geliştirebilirsiniz.

Daha ileri düzey OCR teknikleri için, OCR uygulamalarınızı daha da geliştirmek amacıyla görüntü filtreleri ve sonuç nesneleri hakkındaki kılavuzlarımızı keşfedin.

Sıkça Sorulan Sorular

OCR ilerlemesini gerçek zamanlı olarak nasıl izlerim?

IronOCR, OcrProgress olayı aracılığıyla olaya dayalı bir ilerleme izleme sistemi sunar. Bu olaya IronTesseract örneğinizde abone olun ve tamamlanma yüzdesi, işlenen sayfalar ve OCR işlemleri sırasında zamanlama ölçümleri gibi gerçek zamanlı güncellemeler alacaksınız.

OcrProgress olayı hangi bilgileri sağlar?

IronOCR'daki OcrProgress olayı, Yüzde İlerlemesi (0-100%), Toplam Sayfa sayısı, Tamamlanan Sayfa sayısı, başlangıç ve bitiş zamanları ve toplam süre gibi kapsamlı veriler sağlar. Bu bilgi, özellikle GUI uygulamalarında ilerleme çubuklarının güncellenmesi ve OCR performansının izlenmesi için faydalıdır.

Asenkron OCR işlemleriyle ilerleme izleme kullanabilir miyim?

Evet, IronOCR'un ilerleme izleme işlevselliği, asenkron işlemlerle sorunsuz çalışır. Bunu asenkron işlem ve hatta çoklu iş parçacığı ile birleştirerek, OcrProgress olayı aracılığıyla gerçek zamanlı ilerleme güncellemeleri alırken performansı artırabilirsiniz.

PDF OCR için basit bir ilerleme izleyiciyi nasıl uygularım?

IronOCR ile temel ilerleme izleme uygulamak için bir IronTesseract örneği oluşturun, bir lambda ifadesi veya olay işleyici ile OcrProgress olayına abone olun, ardından PDF'nizi Read yöntemiyle çağırın. Olay periyodik olarak ateşlenecek ve tamamlanma yüzdesi ile işlenen sayfalar hakkında bilgi sağlayacaktır.

Büyük belge işleme için ilerleme izlemesi faydalı mıdır?

IronOCR ile büyük belgeleri veya dosya partilerini işlerken ilerleme izleme esastır. Özellikle PDF OCR işlemleri ve çok sayfalı TIFF dosyaları için değerlidir, işlem durumunu izlemenize, tamamlanma sürelerini tahmin etmenize ve uzun işlemler sırasında kullanıcı geri bildirimini sağlamanıza olanak tanır.

Is there a recommended frequency for OcrProgress updates?

While the OcrProgress event fires frequently, it's recommended to filter updates to avoid overwhelming your UI or logs, which can impact performance.

How can IronOCR's progress tracking improve the processing of large documents?

When dealing with large documents, IronOCR's progress tracking allows for better control with timeout settings and abort tokens, providing a mechanism to handle slow processing efficiently.

Does progress tracking in IronOCR affect performance?

Progress tracking in IronOCR has minimal performance overhead, although excessive logging or UI updates based on progress events may slow down the overall OCR process.

What best practices should I follow for using progress tracking in IronOCR?

Best practices include managing update frequencies, ensuring thread safety when updating UI elements, and incorporating error handling to maintain smooth OCR operations.

Can IronOCR be used for tracking progress in multi-threaded environments?

Yes, IronOCR's progress tracking can be combined with multi-threading to enhance OCR performance, handling multiple documents or large files more efficiently.

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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

Başlamaya Hazır mısınız?

Nuget Downloads 6,236,385Sürüm:2026.9yeni yayınlandı

ÜCRETSİZİNİZİ EDİNİN

30 günlük Deneme Anahtarınızı anında edinin.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmez
bullet_testÜretimde Test
filigran olmadan
bullet_calendar30 gün tamamen
işlevsel ürün
bullet_supportDeneme sırasında teknik
24/5 destek
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez
PDF için C# NuGet Kütüphanesi
NuGet ile yükleyin

Sürüm: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Çözüm Gezgini'nde Referanslar'a sağ tıklayın, NuGet Paketlerini Yönet
  2. "IronOCR" aratıp seçin
  3. Paketi seçin ve yükleyin
C# PDF DLL
DLL İndir

Sürüm: 2026.9

veya buradan Windows Yükleyicisini indirin.

  1. IronOCR'u ~/Libs gibi bir yere indirip sıkıştırmasını açın, Çözüm dizininizde
  2. Visual Studio Çözüm Gezgini'nde, Referanslar'a sağ tıklayın. Gözat'ı seçin, "IronOCR.dll"

$999'dan itibaren lisanslar

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez