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,236,385Versã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.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronOCR".
  3. Selecione o pacote e instale.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronOCR em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronOCR.dll".

Licenças a partir de US$ 749

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.

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 IronPDF
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.