IRONSOFTWAREHOME

Umgang mit großen PDF-Dateien in IronOCR

Curtis Chau
Curtis Chau
Updated: 29. Juni 2026

Das Ausführen von OCR auf großen mehrseitigen PDFs kann den Speicherbedarf erhöhen und den Prozess abstürzen lassen. Der übliche Übeltäter ist, alle Seiten gleichzeitig in den Speicher zu laden.

System.OutOfMemoryException
Text

OcrInput.LoadPdf("large.pdf") liest alle Seiten auf einmal ein. Das Bildsystem von IronOCR rendert dann jede Seite gleichzeitig, und da der DPI-Standardwert 200 beträgt, steigt der Speicherbedarf schnell. Bei einem großen Dokument bedeutet das eine OutOfMemoryException oder eine Ressourcen-Blockierung.

Lösung

Die Lösung besteht darin, das PDF Seite für Seite zu verarbeiten und den Rendervorgang auf die niedrigste zu halten, die die Textqualität zulässt.

1. Holen Sie sich die Seitenanzahl

Öffnen Sie das Dokument mit IronPdf.PdfDocument (oder einer beliebigen PDF-Bibliothek), um zu erfahren, wie viele Seiten es hat.

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

2. Laden Sie eine Seite auf einmal

Schleifen Sie durch die Seiten und laden Sie jede einzeln mit OcrInput.LoadPdfPage("file.pdf", pageIndex, dpi). Wo die visuelle Qualität besteht, senken Sie den DPI-Wert auf so niedrig wie 80, um Speicher zu sparen.

3. Lesen und anhängen

Übergeben Sie jede Eingabe einer Einzelseite an IronTesseract.Read() und fügen Sie das Ergebnis einem StringBuilder hinzu.

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#

Das using bei jedem OcrInput gibt die Bilddaten der Seite vor der nächsten Iteration frei, so dass der Speicher im Loop konstant bleibt, anstatt mit der Seitenanzahl zu wachsen.

Option: Komprimieren Sie das PDF zuerst

Bei sehr komplexen oder bildlastigen Dateien kann die Schleife Seite für Seite dennoch Probleme haben. Komprimieren Sie das PDF mit der Komprimierungs-API von IronPDF, bevor Sie OCR durchführen, um die Bilddaten zu reduzieren, die IronOCR verarbeiten muss. Dies zahlt sich vor allem bei gescannten oder bildlastigen Dokumenten aus.

Komprimieren Sie direkt in einen Stream und laden Sie diesen Stream dann in 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#

Wenn ein PDF eingebettete Bilder enthält, verringern Sie JpegQuality während der Komprimierung, um die Daten weiter zu verkleinern:

var pdf = PdfDocument.FromFile(@"D:\hugePdf.pdf");
var stream = pdf.CompressPdfToStream(JpegQuality: 75, CompressStructTree: true);
C#
Warnung: Den gleichen MemoryStream über Schleifeniterationen wiederverwenden? Setzen Sie seine Position vor jedem Lesen auf 0 zurück. Ein Stream wird einmal gelesen, sodass der nächste Lesevorgang fehlschlägt, wenn die Position nicht zurückgesetzt wird.

Debug-Tipps

  • Senken Sie den DPI-Wert: Werte im Bereich von 80 bis 100 reduzieren den Speicherverbrauch erheblich, wenn der Text noch lesbar ist.
  • Vermeiden Sie LoadPdf() bei großen Dateien: Lesen Sie das gesamte Dokument auf einmal nur dann ein, wenn es wirklich klein ist.
  • Entsorgen Sie frühzeitig: Umschließen Sie OcrInput in using Aussagen, damit der Speicher zwischen den Seiten freigegeben wird.
  • Parallelisieren mit Vorsicht: führen Sie Seiten nur parallel aus, wenn der Rechner über ausreichenden Speicher und CPU verfügt; bei großen PDFs schlägt dies fehl.
Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Bereit anzufangen?

Nuget Downloads 6,236,385Version:2026.9gerade veröffentlicht

Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.
C# NuGet-Bibliothek für PDF
Installation mit NuGet

Version: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. Rechtsklick auf Referenzen, NuGet-Pakete verwalten
  2. Wählen Sie Durchsuchen und suchen Sie nach "IronOCR"
  3. Paket auswählen und installieren
C# PDF DLL
Download DLL

Version: 2026.9

oder laden Sie den Windows Installer hier herunter.

  1. Laden Sie IronOCR herunter und entpacken Sie es in einem Ordner wie ~/Libs in Ihrem Lösungsverzeichnis.
  2. Klicken Sie im Visual Studio Solution Explorer mit der rechten Maustaste auf Referenzen. Wählen Sie Durchsuchen, "IronOCR.dll"

Lizenzen von $999

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.