IRONSOFTWAREHOME

Comment utiliser le suivi de la progression en C# ; avec IronOCR

Curtis Chau
Curtis Chau
Updated: 29 juin 2026

IronOCR fournit un système de suivi de la progression basé sur des événements pour les opérations OCR, permettant aux développeurs de surveiller les progrès de lecture grâce à l'événement OcrProgress qui rapporte le pourcentage d'achèvement, les pages traitées et les métriques de temps en temps réel.

Démarrage rapide : S'abonner à OcrProgress et lire un PDF

Cet exemple montre comment surveiller la progression de l'OCR avec IronOCR : abonnez-vous à son événement intégré OcrProgress et recevez des retours instantanés incluant le pourcentage, les pages terminées et les pages totales lors de la lecture d'un PDF. Quelques lignes suffisent pour commencer.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copiez et exécutez cet extrait de code.

    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. 3Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui avec un essai gratuit
    arrow pointer

Comment mettre en œuvre le suivi des progrès dans mon application OCR?

Le suivi de la progression est essentiel lors du traitement de documents volumineux ou de lots de fichiers à l'aide de l'OCR. L'événement OcrProgress peut être utilisé pour recevoir des mises à jour sur l'avancement du processus de lecture. Ces outils sont particulièrement utiles pour les opérations de reconnaissance optique de caractères (OCR) des fichiers PDF et pour travailler avec des fichiers TIFF multipages.

L'événement transmet une instance contenant des informations sur la progression du travail d'OCR, telles que l'heure de début, le nombre total de pages, la progression en pourcentage, la durée et l'heure de fin. Cette fonctionnalité fonctionne de manière transparente avec les opérations async et peut être combinée avec multithreading pour améliorer les performances.

L'exemple suivant utilise ce document comme modèle : "Experiences in Biodiversity Research : A Field Course" par Thea B. Gessler, Université d'État de l'Iowa.

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);
Sortie de la console montrant le suivi de la progression de 95 % à 100 % avec des horodatages et des données sur la durée

Quelles sont les informations sur le progrès auxquelles je peux accéder à partir de l'événement?

L'événement OcrProgress fournit des données de progression complètes qui aident à surveiller et optimiser les performances OCR. Chaque propriété a une fonction spécifique dans le suivi de l'opération :

  • ProgressPercent : Progression du travail OCR en pourcentage des pages terminées, allant de 0 à 100. Utile pour mettre à jour les barres de progression dans les applications GUI.
  • TotalPages : Nombre total de pages en cours de traitement par le moteur OCR. Essentiel pour calculer les temps d'achèvement estimés.
  • PagesComplete : Nombre de pages où la lecture OCR a été totalement achevée. Ce nombre augmente progressivement au fur et à mesure que les pages sont traitées.
  • Duration : Durée totale du travail OCR, indiquant le temps nécessaire pour que l'ensemble du processus soit terminé. Mesuré au format TimeSpan et mis à jour chaque fois que l'événement est déclenché.
  • StartTimeUTC : Date et heure du démarrage du travail OCR, représentées au format Temps Universel Coordonné (UTC).
  • EndTimeUTC : Date et heure où le travail OCR a été complété à 100 % au format UTC. Cette propriété est nulle lorsque l'OCR est en cours et se remplit une fois le processus terminé.

Mise en œuvre d'un suivi avancé de la progression

Pour les applications de production, mettez en place un suivi de la progression plus sophistiqué. Cet exemple inclut la gestion des erreurs et la journalisation détaillée :

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;
    }
}

Intégrer le suivi de la progression dans les applications d'interface utilisateur

Lors de la création d'applications de bureau avec Windows Forms ou WPF, le suivi de la progression devient crucial pour l'expérience de l'utilisateur. L'événement de progression peut mettre à jour les éléments de l'interface utilisateur en toute sécurité :

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");
        }
    }
}

Travailler avec des documents volumineux et des délais d'attente

Lors du traitement de documents volumineux, le suivi de la progression devient encore plus précieux. Combinez-la avec les paramètres de temporisation et les jetons d'abandon pour un meilleur contrôle :

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");
    }
}

Bonnes pratiques pour le suivi des progrès

  1. Fréquence des mises à jour : L'événement OcrProgress se déclenche fréquemment pendant le traitement. Envisagez de filtrer les mises à jour pour éviter de submerger votre interface utilisateur ou vos journaux.

  2. Impact sur les performances : Le suivi de la progression a un impact minimal sur les performances, mais une journalisation excessive ou des mises à jour de l'interface utilisateur peuvent ralentir le processus d'OCR.

  3. Gestion de la mémoire : Pour les grands fichiers TIFF ou PDF, surveillez l'utilisation de la mémoire parallèlement à la progression pour garantir des performances optimales.

  4. Gestion des erreurs : Incluez toujours une gestion des erreurs dans vos gestionnaires d'événements de progression afin d'éviter que des exceptions ne viennent perturber le processus d'OCR.

  5. Sécurité des fils d'exécution : Lors de la mise à jour des éléments de l'interface utilisateur à partir de l'événement de progression, assurez une synchronisation adéquate du fil à l'aide des méthodes Invoke ou BeginInvoke.

Conclusion

Le suivi de la progression dans IronOcr offre une visibilité essentielle sur les opérations d'OCR, permettant aux développeurs de créer des applications réactives qui tiennent les utilisateurs informés de l'état d'avancement du traitement. En exploitant efficacement l'événement OcrProgress, vous pouvez créer des applications professionnelles qui gèrent tout, des documents d'une seule page aux fichiers PDF étendus avec confiance.

Pour des techniques d'OCR plus avancées, consultez nos guides sur les filtres d'images et les objets de résultat afin d'améliorer encore vos implémentations d'OCR.

Questions Fréquemment Posées

Comment puis-je suivre la progression de l'OCR en temps réel ?

IronOCR fournit un système de suivi des progrès basé sur des événements grâce à l'événement OcrProgress. Il suffit de s'abonner à cet événement sur votre instance IronTesseract, et vous recevrez des mises à jour en temps réel, y compris le pourcentage d'achèvement, les pages traitées et les mesures de temps pendant les opérations d'OCR.

Quelles sont les informations fournies par l'événement OcrProgress ?

L'événement OcrProgress dans IronOcr fournit des données complètes, notamment ProgressPercent (0-100 %), TotalPages count, PagesComplete count, les heures de début et de fin, et la durée totale. Ces informations sont particulièrement utiles pour mettre à jour les barres de progression dans les applications GUI et contrôler les performances de l'OCR.

Puis-je utiliser le suivi de la progression avec des opérations d'OCR asynchrones ?

Oui, la fonctionnalité de suivi de la progression d'IronOCR fonctionne de manière transparente avec les opérations asynchrones. Vous pouvez la combiner avec le traitement asynchrone et même le multithreading pour améliorer les performances tout en continuant à recevoir des mises à jour de la progression en temps réel par le biais de l'événement OcrProgress.

Comment mettre en place un outil simple de suivi de la progression de l'OCR PDF ?

Pour mettre en œuvre un suivi de base de la progression avec IronOCR, créez une instance IronTesseract, abonnez-vous à l'événement OcrProgress avec une expression lambda ou un gestionnaire d'événement, puis appelez la méthode Read avec votre PDF. L'événement sera déclenché périodiquement et fournira des informations sur le pourcentage d'achèvement et les pages traitées.

Le suivi de la progression est-il utile pour le traitement de documents volumineux ?

Le suivi de la progression est essentiel lors du traitement de documents volumineux ou de lots de fichiers avec IronOCR. Il est particulièrement utile pour les opérations d'OCR de PDF et les fichiers TIFF multipages, vous permettant de surveiller l'état du traitement, d'estimer les temps d'achèvement et de fournir un retour d'information à l'utilisateur pendant les opérations de longue durée.

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
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Prêt à commencer?

Nuget Downloads 6,236,385Version :2026.9vient de sortir

Obtenez votre GRATUIT

Clé d'essai de 30 jours instantanément.

bullet_checkedAucune carte de crédit ou création de compte requise
bullet_testTester en production
sans filigranes
bullet_calendarProduit entièrement fonctionnel
pendant 30 jours
bullet_supportSupport technique 24/5
pendant l'essai
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et cherchez "IronOCR"
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez le programme d'installation Windows ici.

  1. Téléchargez et décompressez IronOCR à un emplacement tel que ~/Libs dans votre répertoire du projet
  2. Dans l'Explorateur de Solutions de Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, "IronOCR.dll"

Licences à partir de $999

Vous avez une question ? Contactez notre équipe de développement.

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise