IRONSOFTWAREHOME

Manejo de Archivos PDF Grandes en IronOCR

Curtis Chau
Curtis Chau
Updated: 29 de junio de 2026

Ejecutar OCR en PDFs grandes de varias páginas puede disparar la memoria y bloquear el proceso. El culpable habitual es cargar todas las páginas en memoria a la vez.

System.OutOfMemoryException
Text

OcrInput.LoadPdf("large.pdf") lee todas las páginas de una sola vez. El sistema de imágenes de IronOCR luego renderiza todas las páginas simultáneamente, y debido a que el DPI por defecto es 200, el uso de memoria aumenta rápidamente. En un documento grande eso significa un OutOfMemoryException o un bloqueo de recursos.

Solución

La solución es procesar el PDF una página a la vez y mantener el DPI de renderizado tan bajo como la calidad del texto lo permita.

1. Obtener el Recuento de Páginas

Abre el documento con IronPdf.PdfDocument (o cualquier biblioteca PDF) para leer cuántas páginas tiene.

using var pdf = IronPdf.PdfDocument.FromFile(pdfPath);
var pageCount = pdf.PageCount;
C#

2. Cargar Una Página a la Vez

Recorre las páginas y carga cada una individualmente con OcrInput.LoadPdfPage("file.pdf", pageIndex, dpi). Donde la calidad visual se mantiene, baja el DPI hasta 80 para conservar memoria.

3. Leer y Concatenar

Pasa cada entrada de una sola página a IronTesseract.Read() y añade el resultado a un StringBuilder.

var ocr = new IronTesseract();
var pdfPath = "large.pdf";
using var pdf = IronPdf.PdfDocument.FromFile(pdfPath);
var pageCount = pdf.PageCount;
var textBuilder = new StringBuilder();
for (int i = 0; i < pageCount; i++)
{
    using var input = new OcrInput();
    input.LoadPdfPage(pdfPath, i, 80);
    var result = ocr.Read(input);
    textBuilder.Append(result.Text);
    textBuilder.Append(' '); // Add space between pages
}
Console.WriteLine(textBuilder.ToString().Trim());
C#

El using en cada OcrInput libera los datos de la imagen de la página antes de la siguiente iteración, así que la memoria se mantiene constante a lo largo del bucle en lugar de crecer con el número de páginas.

Opción: Comprimir el PDF Primero

Para archivos muy complejos o cargados de imágenes, el bucle de página por página aún puede tener problemas. Comprimir el PDF con la API Compress de IronPDF antes de OCR para reducir los datos de imagen que IronOCR tiene que manejar. Esto vale la pena especialmente en documentos escaneados o cargados de imágenes.

Comprime directamente a un flujo, luego carga ese flujo en OcrInput:

var pdf = PdfDocument.FromFile(pdfPath);
var stream = pdf.CompressPdfToStream(CompressStructTree: true);
var ocrTesseract = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadPdfPage(stream, 1);
C#

Cuando un PDF lleva imágenes incrustadas, reduce JpegQuality durante la compresión para reducir aún más los datos:

var pdf = PdfDocument.FromFile(@"D:\hugePdf.pdf");
var stream = pdf.CompressPdfToStream(JpegQuality: 75, CompressStructTree: true);
C#
Advertencia: ¿Reutilizando el mismo MemoryStream en iteraciones de bucle? Restablezca su posición a 0 antes de cada lectura. Un flujo se consume una vez leído, así que la próxima lectura fallará si la posición no se restablece.

Consejos para depuración

  • Reduce el DPI: valores en el rango de 80 a 100 reducen drásticamente el uso de memoria cuando el texto sigue siendo legible.
  • Evita LoadPdf() en archivos grandes: lee todo el documento de una vez solo cuando sea realmente pequeño.
  • Libera pronto: envuelve OcrInput en declaraciones using para que la memoria se libere entre las páginas.
  • Paralelizar con cuidado: ejecute páginas de forma concurrente solo cuando la máquina tenga memoria y CPU de sobra; se vuelve en contra en PDFs grandes.
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

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