IRONSOFTWAREHOME

Manipulando Grandes Arquivos PDF no IronOCR

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Executar OCR em PDFs grandes de várias páginas pode aumentar a memória e travar o processo. O culpado habitual é carregar todas as páginas na memória de uma só vez.

System.OutOfMemoryException
Text

OcrInput.LoadPdf("large.pdf") lê todas as páginas de uma só vez. O sistema de imagens do IronOCR então renderiza todas as páginas simultaneamente, e como o DPI padrão é 200, o uso de memória aumenta rapidamente. Em um documento grande, isso significa um OutOfMemoryException ou um deadlock de recursos.

Solução

A solução é processar o PDF uma página por vez e manter o DPI de renderização o mais baixo possível enquanto a qualidade do texto permitir.

1. Obter a Contagem de Páginas

Abra o documento com IronPdf.PdfDocument (ou qualquer biblioteca PDF) para ler quantas páginas ele tem.

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

2. Carregar Uma Página de Cada Vez

Percorra as páginas e carregue cada uma individualmente com OcrInput.LoadPdfPage("file.pdf", pageIndex, dpi). Onde a qualidade visual se mantém, reduza o DPI para o mínimo de 80 para economizar memória.

3. Ler e Concatenar

Passe cada entrada de página única para IronTesseract.Read() e anexe o resultado a um 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#

O using em cada OcrInput libera os dados de imagem da página antes da próxima iteração, então a memória permanece constante no loop, em vez de crescer com a contagem de páginas.

Opção: Comprimir o PDF Primeiro

Para arquivos muito complexos ou com muitas imagens, o loop de página por página ainda pode ter dificuldades. Comprimir o PDF com a API de Compressão do IronPDF antes do OCR para reduzir os dados de imagem que o IronOCR precisa manipular. Isso vale principalmente para documentos digitalizados ou com muitas imagens.

Comprimir diretamente para um fluxo e, em seguida, carregar esse fluxo em 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#

Quando um PDF contém imagens incorporadas, abaixe JpegQuality durante a compressão para reduzir ainda mais os dados:

var pdf = PdfDocument.FromFile(@"D:\hugePdf.pdf");
var stream = pdf.CompressPdfToStream(JpegQuality: 75, CompressStructTree: true);
C#
Aviso: Reutilizando o mesmo MemoryStream nas iterações do loop? Redefina sua posição para 0 antes de cada leitura. Um fluxo é consumido uma vez lido, então a próxima leitura falha se a posição não for redefinida.

Dicas de Depuração

  • Reduza o DPI: valores na faixa de 80 a 100 reduzem o uso de memória drasticamente quando o texto ainda é legível.
  • Evite LoadPdf() em arquivos grandes: leia o documento inteiro de uma vez somente quando ele for realmente pequeno.
  • Descarte cedo: envolva OcrInput em declarações using para que a memória seja liberada entre as páginas.
  • Paralelize com cuidado: execute páginas simultaneamente apenas quando o computador tiver memória e CPU de sobra; volta atrás em PDFs grandes.
Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 6,262,020Versão:2026.9recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.
Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

OR
bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Agende sua demonstração ao vivo gratuita.
Booking Badge

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.