IRONSOFTWAREHOME

Cómo utilizar el seguimiento del progreso en C# con IronOCR

Curtis Chau
Curtis Chau
Updated: 29 de junio de 2026

IronOCR proporciona un sistema de seguimiento de progreso basado en eventos para operaciones de OCR, permitiendo a los desarrolladores monitorear el progreso de lectura a través del evento OcrProgress, que informa el porcentaje de finalización, las páginas procesadas y las métricas de tiempo en tiempo real.

Inicio rápido: Suscribirse a OcrProgress y leer PDF

Este ejemplo muestra cómo monitorear el progreso de OCR con IronOCR: suscríbase a su evento incorporado OcrProgress y reciba comentarios instantáneos que incluyen porcentaje, páginas completadas y páginas totales mientras lee un PDF. Solo se necesitan unas pocas líneas para empezar.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Copie y ejecute este fragmento de código.

    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. 3Despliegue para probar en su entorno real

    Comienza a usar IronOCR en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

¿Cómo implemento el seguimiento del progreso en mi aplicación OCR?

El seguimiento del progreso es esencial cuando se procesan grandes documentos o lotes de archivos con OCR. Se puede suscribir al evento OcrProgress para recibir actualizaciones de progreso sobre el proceso de lectura. Esto es especialmente útil para operaciones de OCR en PDF y cuando se trabaja con archivos TIFF multipágina.

El evento pasa una instancia que contiene información sobre el progreso del trabajo de OCR, como la hora de inicio, el total de páginas, el progreso como porcentaje, la duración y la hora de finalización. Esta funcionalidad funciona perfectamente con operaciones asíncronas y puede combinarse con multihilos para mejorar el rendimiento.

El siguiente ejemplo utiliza este documento como muestra: "Experiencias en la investigación de la biodiversidad: A Field Course" de Thea B. Gessler, Universidad Estatal de 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);
Salida de consola que muestra el seguimiento del progreso desde el 95% hasta el 100% de finalización con marcas de tiempo y datos de duración

¿A qué información de progreso puedo acceder desde el evento?

El evento OcrProgress proporciona datos de progreso detallados que ayudan a monitorear y optimizar el rendimiento de OCR. Cada propiedad tiene un propósito específico en el seguimiento de la operación:

  • ProgressPercent: Progreso del trabajo de OCR como porcentaje de páginas completadas, que va del 0 al 100. Útil para actualizar las barras de progreso en aplicaciones GUI.
  • TotalPages: Número total de páginas que está procesando el motor de OCR. Esencial para calcular los tiempos estimados de finalización.
  • PagesComplete: Número de páginas donde la lectura de OCR se ha completado completamente. Este recuento aumenta gradualmente a medida que se procesan las páginas.
  • Duration: Duración total del trabajo de OCR, indicando el tiempo requerido para completar todo el proceso. Medido en formato TimeSpan y actualizado cada vez que se activa el evento.
  • StartTimeUTC: Fecha y hora de inicio del trabajo de OCR, representado en formato de Tiempo Universal Coordinado (UTC).
  • EndTimeUTC: Fecha y hora cuando el trabajo de OCR se completó al 100% en formato UTC. Esta propiedad es nula mientras el OCR está en curso y se rellena una vez finalizado el proceso.

Implementación avanzada de seguimiento del progreso

Para las aplicaciones de producción, implemente un seguimiento del progreso más sofisticado. Este ejemplo incluye la gestión de errores y un registro detallado:

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

Integración del seguimiento del progreso con aplicaciones de interfaz de usuario

Cuando se crean aplicaciones de escritorio con Windows Forms o WPF, el seguimiento del progreso es crucial para la experiencia del usuario. El evento de progreso puede actualizar elementos de la interfaz de usuario de forma segura:

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

Trabajar con documentos grandes y tiempos de espera

Al procesar documentos extensos, el seguimiento del progreso resulta aún más valioso. Combínalo con configuraciones de tiempo de espera y fichas de aborto para un mejor control:

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

Bestes prácticas para el seguimiento del progreso

  1. Frecuencia de Actualizaciones: El evento OcrProgress se activa con frecuencia durante el procesamiento. Considere la posibilidad de filtrar las actualizaciones para evitar saturar la interfaz de usuario o los registros.

  2. Impacto en el rendimiento: El seguimiento del progreso tiene una sobrecarga de rendimiento mínima, pero el registro excesivo o las actualizaciones de la interfaz de usuario pueden ralentizar el proceso de OCR.

  3. Gestión de memoria: Para archivos TIFF o PDF de gran tamaño, supervisa el uso de memoria junto con el progreso para garantizar un rendimiento óptimo.

  4. Manejo de errores: Incluya siempre el manejo de errores en sus manejadores de eventos de progreso para evitar que las excepciones interrumpan el proceso de OCR.

  5. Seguridad de Hilos: Al actualizar elementos de la interfaz de usuario desde el evento de progreso, asegúrese de sincronizar adecuadamente los hilos usando los métodos Invoke o BeginInvoke.

Conclusión

El seguimiento del progreso en IronOCR proporciona una visibilidad esencial de las operaciones de OCR, lo que permite a los desarrolladores crear aplicaciones con capacidad de respuesta que mantienen a los usuarios informados sobre el estado del procesamiento. Aprovechando efectivamente el evento OcrProgress, puede construir aplicaciones profesionales que manejan con confianza todo, desde documentos de una sola página hasta extensos archivos PDF.

Para técnicas de OCR más avanzadas, explore nuestras guías sobre filtros de imagen y objetos de resultado para mejorar aún más sus implementaciones de OCR.

Preguntas Frecuentes

¿Cómo puedo seguir el progreso del OCR en tiempo real?

IronOCR proporciona un sistema de seguimiento del progreso basado en eventos a través del evento OcrProgress. Simplemente suscríbase a este evento en su instancia de IronTesseract y recibirá actualizaciones en tiempo real que incluyen el porcentaje de finalización, las páginas procesadas y las métricas de tiempo durante las operaciones de OCR.

¿Qué información proporciona el evento OcrProgress?

El evento OcrProgress en IronOCR proporciona datos completos, incluyendo ProgressPercent (0-100%), TotalPages count, PagesComplete count, horas de inicio y fin, y la duración total. Esta información es especialmente útil para actualizar las barras de progreso en aplicaciones GUI y supervisar el rendimiento del OCR.

¿Puedo utilizar el seguimiento del progreso con operaciones de OCR asíncronas?

Sí, la funcionalidad de seguimiento del progreso de IronOCR funciona perfectamente con operaciones asíncronas. Puede combinarla con procesamiento asíncrono e incluso multihilo para mejorar el rendimiento sin dejar de recibir actualizaciones de progreso en tiempo real a través del evento OcrProgress.

¿Cómo implemento un sencillo rastreador de progreso para PDF OCR?

Para implementar un seguimiento básico del progreso con IronOCR, cree una instancia IronTesseract, suscríbase al evento OcrProgress con una expresión lambda o un controlador de eventos y, a continuación, llame al método Read con su PDF. El evento se activará periódicamente y proporcionará información sobre el porcentaje de páginas completadas y procesadas.

¿Es útil el seguimiento del progreso para el procesamiento de documentos de gran tamaño?

El seguimiento del progreso es esencial cuando se procesan grandes documentos o lotes de archivos con IronOCR. Es especialmente valioso para las operaciones de OCR de PDF y los archivos TIFF de varias páginas, ya que permite supervisar el estado del procesamiento, estimar los tiempos de finalización y proporcionar comentarios al usuario durante operaciones prolongadas.

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
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

¿Listo para empezar?

Nuget Downloads 6,236,385Versión:2026.9recién lanzado

Obtén tu GRATIS

Clave de prueba de 30 días instantáneamente.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuenta
bullet_testPrueba en producción
sin marcas de agua
bullet_calendarProducto completamente
funcional por 30 días
bullet_supportSoporte técnico 24/5
durante la prueba
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Selecciona Examinar y busca "IronOCR"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.9

o descargar el instalador de Windows aquí.

  1. Descarga y descomprime IronOCR en una ubicación como ~/Libs dentro de tu directorio de Solución
  2. En Visual Studio Solution Explorer, haz clic derecho en Referencias. Selecciona Examinar, "IronOCR.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Obtén tu Consulta Sin Compromiso
Completa el formulario a continuación o envía un correo a sales@ironsoftware.com
Tus detalles siempre serán mantenidos confidenciales.
Confiado por millones de ingenieros en todo el mundo
Logos de clientes de Iron Software
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta