IRONSOFTWAREHOME

Gestion des fichiers PDF volumineux dans IronOCR

Curtis Chau
Curtis Chau
Updated: 29 juin 2026

Exécuter l'OCR sur des PDFs multi-pages volumineux peut provoquer un pic de mémoire et faire planter le processus. Le coupable habituel est le chargement de chaque page en mémoire en même temps.

System.OutOfMemoryException
Text

OcrInput.LoadPdf("large.pdf") lit toutes les pages en une seule fois. Le système d'imagerie d'IronOCR rend ensuite chaque page simultanément, et comme le DPI est par défaut à 200, l'empreinte mémoire augmente rapidement. Sur un gros document, cela signifie un OutOfMemoryException ou un blocage de ressources.

Solution

La solution est de traiter le PDF une page à la fois et de maintenir le DPI de rendu aussi bas que la qualité du texte le permet.

1. Obtenez le nombre de pages

Ouvrez le document avec IronPdf.PdfDocument (ou toute bibliothèque PDF) pour lire combien de pages il contient.

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

2. Chargez une page à la fois

Parcourez les pages et chargez chaque page individuellement avec OcrInput.LoadPdfPage("file.pdf", pageIndex, dpi). Lorsque la qualité visuelle se maintient, baissez le DPI aussi bas que 80 pour économiser la mémoire.

3. Lisez et concaténez

Passez chaque entrée de page unique à IronTesseract.Read() et ajoutez le résultat à 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#

Le using sur chaque OcrInput libère les données d'image de la page avant l'itération suivante, de sorte que la mémoire reste constante à travers la boucle au lieu de croître avec le nombre de pages.

Option : Compressez d'abord le PDF

Pour les fichiers très complexes ou riches en images, la boucle page par page peut encore avoir des difficultés. Compressez le PDF avec l'API de compression d'IronPDF avant l'OCR pour réduire les données d'image qu'IronOCR doit gérer. Cela est particulièrement efficace sur les documents numérisés ou riches en images.

Compressez directement vers un flux, puis chargez ce flux dans 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#

Lorsqu'un PDF contient des images intégrées, réduisez JpegQuality pendant la compression pour réduire encore les données :

var pdf = PdfDocument.FromFile(@"D:\hugePdf.pdf");
var stream = pdf.CompressPdfToStream(JpegQuality: 75, CompressStructTree: true);
C#
Avertissement: Réutilisez le même MemoryStream à travers les itérations de boucle ? Réinitialisez sa position à 0 avant chaque lecture. Un flux est consommé une fois lu, donc la lecture suivante échoue si la position n'est pas réinitialisée.

Conseils de débogage

  • Réduisez le DPI : des valeurs dans la plage de 80 à 100 réduisent fortement l'utilisation de la mémoire lorsque le texte reste lisible.
  • Évitez LoadPdf() sur des fichiers volumineux : lisez tout le document en une seule fois uniquement lorsqu'il est vraiment petit.
  • Débarrassez-vous tôt : enveloppez OcrInput dans des déclarations using afin que la mémoire soit libérée entre les pages.
  • Parallélisez avec précaution : exécutez les pages en parallèle uniquement lorsque la machine dispose de mémoire et de CPU supplémentaires ; cela se retourne contre vous sur les PDFs volumineux.
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 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