Wie man PDFs in OCR C# liest

Lesen von PDFs in C#35; mit IronOCR

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR ermöglicht die Extraktion von Text aus PDF-Dateien in C# mit einer einzigen Codezeile, unterstützt alle PDF-Versionen und liefert dank seiner Tesseract-basierten Engine präzise OCR-Ergebnisse.

PDF steht für "Portable Document Format" Dabei handelt es sich um ein von Adobe entwickeltes Dateiformat, das die Schriftarten, Bilder, Grafiken und das Layout eines beliebigen Quelldokuments unabhängig von der Anwendung und der Plattform, die zur Erstellung verwendet wurden, beibehält. PDF-Dateien werden typischerweise zum Teilen und Anzeigen von Dokumenten in einem konsistenten Format verwendet, unabhängig von der verwendeten Software oder Hardware. IronOCR verarbeitet verschiedene Versionen von PDF-Dokumenten, von älteren PDF 1.0-Spezifikationen bis hin zu den neuesten PDF 2.0-Standards.

Schnellstart: Eine PDF-Datei in Sekundenschnelle mit OCR bearbeiten

Konfigurieren Sie OCR schnell mit IronOCR, indem Sie ein OcrPdfInput konstruieren, das auf Ihr PDF verweist, und dann Read aufrufen. Dieses Beispiel demonstriert die Textextraktion aus einer PDF-Datei mit IronOCR.

Nuget IconLegen Sie jetzt mit NuGet los, um PDFs zu erstellen:

  1. Installieren Sie IronOCR mit dem NuGet-Paketmanager.

    PM > Install-Package IronOcr

  2. Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.

    using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages));
  3. Bereitstellen zum Testen in Ihrer Live-Umgebung

    Beginnen Sie noch heute mit der Nutzung von IronOCR in Ihrem Projekt – mit einer kostenlosen Testversion.
    arrow pointer


Wie kann ich eine ganze PDF-Datei lesen?

Beginnen Sie mit der Instanziierung der IronTesseract-Klasse, um OCR durchzuführen. Verwenden Sie dann eine 'using'-Anweisung, um ein OcrPdfInput-Objekt zu erstellen, und übergeben Sie den PDF-Dateipfad. Führen Sie schließlich OCR mit der Read-Methode durch. Dieser Ansatz funktioniert sowohl mit gescannten PDFs (bildbasiert) als auch mit durchsuchbaren PDFs (textbasiert) und eignet sich für die Extraktion von Text aus verschiedenen PDF-Typen.

/* :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);

// Access the extracted text
string extractedText = ocrResult.Text;
System.Console.WriteLine(extractedText);
/* :path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf.cs */
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);

// Access the extracted text
string extractedText = ocrResult.Text;
System.Console.WriteLine(extractedText);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
Geteilte Ansicht mit formatiertem Harry-Potter-Text und extrahierter reiner Textausgabe zur Demonstration der PDF-Textextraktion

In den meisten Fällen gibt es keine Notwendigkeit, die DPI-Eigenschaft anzugeben. Das Angeben einer hohen DPI-Zahl beim Erstellen von OcrPdfInput kann jedoch die Lesegenauigkeit verbessern. Die Standard-DPI-Einstellung ist in der Regel für die meisten Standard-PDF-Dokumente ausreichend, aber spezielle Dokumente können von einer Anpassung profitieren.

Wann sollte ich die DPI-Einstellungen anpassen?

Die DPI-Einstellungen (Dots Per Inch) sind von entscheidender Bedeutung, wenn es um gescannte Dokumente mit niedriger Auflösung oder PDF-Dateien mit kleinem Text geht. Um optimale Ergebnisse zu erzielen, sollten Sie die DPI-Einstellungen anpassen, wenn:

  • Arbeiten mit gescannten Dokumenten unter 200 DPI
  • Verarbeitung historischer oder archivierter PDFs
  • Umgang mit komplexen Layouts oder kleinen Schriftarten
  • Probleme mit der Genauigkeit bei Standardeinstellungen

Für die meisten OCR-Vorgänge wird ein DPI-Wert von 300 empfohlen, während für Dokumente mit sehr kleinem Text oder komplizierten Details ein DPI-Wert von 600 erforderlich sein kann.

Welche Dateiformate unterstützt IronOCR neben PDF?

IronOCR bietet umfassende Unterstützung für zahlreiche Dateiformate über PDFs hinaus. Sie können Bilder in verschiedenen Formaten verarbeiten, darunter:

  • JPEG/JPG für Standardfotos
  • PNG für Bilder mit Transparenz
  • TIFF für mehrseitige Dokumente
  • BMP für unkomprimierte Bilder
  • GIF für einfache Grafiken

Darüber hinaus kann IronOCR PDF-Streams direkt aus dem Speicher verarbeiten, was für Webanwendungen und Cloud-Dienste geeignet ist.

Arbeiten mit PDF-Inhaltstypen

Bei der Verarbeitung von PDFs können Sie die Leistung durch Angabe des Inhaltstyps optimieren. Mit der Aufzählung PdfContents können Sie bestimmte Inhalte ansprechen:

// For text-only PDFs (faster processing)
var textOnlyPdf = new OcrPdfInput("document.pdf", PdfContents.Text);

// For image-only PDFs (scanned documents)
var imageOnlyPdf = new OcrPdfInput("scanned.pdf", PdfContents.Images);

// For mixed content (default)
var mixedPdf = new OcrPdfInput("mixed.pdf", PdfContents.TextAndImages);
// For text-only PDFs (faster processing)
var textOnlyPdf = new OcrPdfInput("document.pdf", PdfContents.Text);

// For image-only PDFs (scanned documents)
var imageOnlyPdf = new OcrPdfInput("scanned.pdf", PdfContents.Images);

// For mixed content (default)
var mixedPdf = new OcrPdfInput("mixed.pdf", PdfContents.TextAndImages);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Wie lese ich bestimmte Seiten aus einer PDF-Datei?

Wenn Sie bestimmte Seiten aus einem PDF-Dokument lesen, geben Sie die Seitenindexnummer für den Import an. Übergeben Sie dazu die Liste der Seitenindizes an den Parameter PageIndices, wenn Sie den OcrPdfInput konstruieren. Bedenken Sie, dass bei Seitenindizes nullbasierte Nummerierung verwendet wird. Diese Funktion ist besonders nützlich bei der Arbeit mit umfangreichen Dokumenten, bei denen nur bestimmte Seiten relevante Informationen enthalten.

:path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-pdf-pages.cs
using IronOcr;
using System.Collections.Generic;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Create page indices list
List<int> pageIndices = new List<int>() { 0, 2 };

// Add PDF
using var pdfInput = new OcrPdfInput("Potter.pdf", PageIndices: pageIndices);
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(pdfInput);
Imports IronOcr
Imports System.Collections.Generic

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Create page indices list
Private pageIndices As New List(Of Integer)() From {0, 2}

' Add PDF
Private pdfInput = New OcrPdfInput("Potter.pdf", PageIndices:= pageIndices)
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(pdfInput)
$vbLabelText   $csharpLabel

Warum beginnt die Seitennummerierung bei Null?

Null-basierte Indizierung ist eine Standardkonvention in C# und den meisten Programmiersprachen. Das bedeutet, dass die erste Seite den Index 0 hat, die zweite Seite den Index 1 und so weiter. Diese Konsistenz mit der Array-Indizierung erleichtert den Entwicklern die programmatische Arbeit mit Seitenkollektionen. Bei der Konvertierung von Seitenzahlen (1, 2, 3...) in Indizes wird einfach 1 von der Seitenzahl abgezogen.

Wie kann ich nicht-zusammenhängende Seiten lesen?

Das Lesen von nicht-konsekutiven Seiten ist mit IronOCR ganz einfach. Fügen Sie einfach die gewünschten Seitenindizes in beliebiger Reihenfolge zu Ihrer Liste hinzu. Zum Beispiel:

// Read pages 1, 3, 5, and 10 (using zero-based indices)
List<int> pageIndices = new List<int>() { 0, 2, 4, 9 };

// Or use LINQ for range-based selection
var evenPages = Enumerable.Range(0, 10).Where(x => x % 2 == 0).ToList();
// Read pages 1, 3, 5, and 10 (using zero-based indices)
List<int> pageIndices = new List<int>() { 0, 2, 4, 9 };

// Or use LINQ for range-based selection
var evenPages = Enumerable.Range(0, 10).Where(x => x % 2 == 0).ToList();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Die OCR-Engine wird nur die angegebenen Seiten verarbeiten, was die Leistung bei großen Dokumenten erheblich verbessert.

Was passiert, wenn ich ungültige Seitenzahlen angebe?

Wenn Sie Seitenindizes angeben, die die Seitenzahl des Dokuments überschreiten, löst IronOCR eine Ausnahme aus. Implementieren Sie eine Fehlerbehandlung oder validieren Sie die Seitenzahlen vor der Verarbeitung. Sie können die Gesamtseitenzahl einer PDF-Datei überprüfen, bevor Sie die OCR durchführen, um sicherzustellen, dass Ihre Indizes gültig sind.

Wie erkenne ich einen bestimmten Bereich einer PDF-Datei mit OCR?

Indem Sie den zu lesenden Bereich eingrenzen, können Sie die Leseeffizienz erheblich steigern. Um dies zu erreichen, geben Sie den genauen Bereich der importierten PDF-Datei an, der gelesen werden muss. Im folgenden Codebeispiel konzentriert sich IronOCR ausschließlich auf die Extraktion der Kapitelnummer und des Titels. Diese Technik, die der Definition von OCR-Regionen für Bilder ähnelt, verbessert sowohl die Geschwindigkeit als auch die Genauigkeit.

:path=/static-assets/ocr/content-code-examples/how-to/input-pdfs-read-specific-region.cs
using IronOcr;
using IronSoftware.Drawing;
using System;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Specify crop regions
Rectangle[] scanRegions = { new Rectangle(550, 100, 600, 300) };

// Add PDF
using (var pdfInput = new OcrPdfInput("Potter.pdf", ContentAreas: scanRegions))
{
    // Perform OCR
    OcrResult ocrResult = ocrTesseract.Read(pdfInput);

    // Output the result to console
    Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports IronSoftware.Drawing
Imports System

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Specify crop regions
Private scanRegions() As Rectangle = { New Rectangle(550, 100, 600, 300) }

' Add PDF
Using pdfInput = New OcrPdfInput("Potter.pdf", ContentAreas:= scanRegions)
	' Perform OCR
	Dim ocrResult As OcrResult = ocrTesseract.Read(pdfInput)

	' Output the result to console
	Console.WriteLine(ocrResult.Text)
End Using
$vbLabelText   $csharpLabel

Wie bestimme ich die korrekten Rechteckkoordinaten?

PDF mit rotem Rechteck, das den Kapiteltitel für die OCR-Verarbeitung auswählt, Visual Studio-Konsole zeigt abgeschlossene Ausführung

Um die richtigen Koordinaten zu finden, muss man das Koordinatensystem der PDF-Datei verstehen. Der Rectangle-Konstruktor benötigt vier Parameter: X (horizontale Position), Y (vertikale Position), Breite, und Höhe. Alle Maße sind in Pixeln angegeben. Tools wie PDF-Viewer mit Linealfunktionen oder Debugging-Dienstprogramme können dabei helfen, genaue Koordinaten zu ermitteln. Alternativ können Sie auch durch Ausprobieren und kleine Anpassungen Ihren Auswahlbereich verfeinern.

Zur genaueren Definition von Bereichen können Sie die Funktion Texte für die Fehlersuche hervorheben nutzen, um die bearbeiteten Bereiche zu visualisieren.

Kann ich mehrere Regionen in einem Vorgang angeben?

Ja, IronOCR unterstützt mehrere Regionen in einem einzigen OCR-Vorgang. Fügen Sie einfach mehrere Rectangle-Objekte zu Ihrem Array hinzu:

Rectangle[] scanRegions = { 
    new Rectangle(50, 50, 200, 100),    // Header region
    new Rectangle(50, 200, 500, 300),   // Main content region
    new Rectangle(50, 550, 200, 50)     // Footer region
};
Rectangle[] scanRegions = { 
    new Rectangle(50, 50, 200, 100),    // Header region
    new Rectangle(50, 200, 500, 300),   // Main content region
    new Rectangle(50, 550, 200, 50)     // Footer region
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Jede Region wird separat bearbeitet, und die Ergebnisse werden in der angegebenen Reihenfolge kombiniert.

Warum regionsspezifische OCR anstelle von Ganzseitenübersetzung verwenden?

Die regionalspezifische OCR bietet mehrere Vorteile:

  • Leistung: Die Verarbeitung kleinerer Bereiche ist deutlich schneller
  • Genauigkeit: Die Fokussierung auf bestimmte Regionen reduziert das Rauschen irrelevanter Inhalte
  • Struktur: Zuverlässigeres Extrahieren von Daten aus Formularen und Tabellen
  • Kosteneffizienz: Geringere Bearbeitungszeit bedeutet geringere Rechenkosten

Dieser Ansatz ist besonders wertvoll bei der Arbeit mit strukturierten Dokumenten wie Rechnungen, Formularen oder Berichten, in denen Daten an vorhersehbaren Stellen erscheinen. Bei komplexen Dokumentstrukturen sollten Sie sich über Lesen von Tabellen in Dokumenten informieren, um spezielle Techniken zur Extraktion von Tabellen kennenzulernen.

Welche erweiterten PDF OCR-Funktionen sind verfügbar?

IronOCR bietet zusätzliche Funktionen für die PDF-Verarbeitung, die über die einfache Textextraktion hinausgehen. Sie können durchsuchbare PDFs aus gescannten Dokumenten erstellen, wobei das ursprüngliche Layout erhalten bleibt und eine Textebene zum Suchen und Kopieren hinzugefügt wird. Die Bibliothek unterstützt auch Multithreading für eine schnellere Verarbeitung von großen PDF-Sammlungen.

Für Entwickler, die mit OCR in ihren .NET-Anwendungen beginnen möchten, bieten die einfachen OCR-Beispiele eine solide Grundlage für das Verständnis der Fähigkeiten und bewährten Verfahren von IronOCR.

Behandlung komplexer PDF-Szenarien

Für den Umgang mit anspruchsvollen PDF-Dokumenten bietet IronOCR mehrere erweiterte Funktionen:

  1. Bildvorverarbeitung: Wenden Sie Bildfilter an, um die Klarheit des Textes zu verbessern
  2. Mehrere Sprachen: Verarbeiten Sie Dokumente, die mehrere Sprachen gleichzeitig enthalten
  3. Benutzerdefinierte Konfigurationen: Feinabstimmung der OCR-Einstellungen für bestimmte Dokumenttypen
  4. Exportoptionen: Speichern Sie die Ergebnisse in verschiedenen Formaten, darunter durchsuchbare PDFs und hOCR HTML

Diese Funktionen machen IronOCR zu einer umfassenden Lösung für PDF-Verarbeitungsanforderungen auf Unternehmensebene.

Häufig gestellte Fragen

Wie kann ich in C# Text aus einer PDF-Datei extrahieren?

Sie können mit IronOCR mit nur einer Zeile Code Text aus PDF-Dateien extrahieren. Erstellen Sie einfach eine IronTesseract-Instanz und verwenden Sie die Read-Methode mit OcrPdfInput: `using var result = new IronOcr.IronTesseract().Read(new IronOcr.OcrPdfInput("document.pdf", PdfContents.TextAndImages));`. IronOCR verarbeitet sowohl gescannte PDFs (bildbasiert) als auch durchsuchbare PDFs (textbasiert).

Welche PDF-Versionen werden für die Textextraktion unterstützt?

IronOCR unterstützt alle PDF-Versionen, von älteren PDF 1.0-Spezifikationen bis hin zu den neuesten PDF 2.0-Standards. Die OCR-Engine basiert auf der Tesseract-Technologie und gewährleistet eine genaue Textextraktion, unabhängig von der PDF-Version, mit der Sie arbeiten.

Kann ich nur bestimmte Seiten eines PDF-Dokuments lesen und nicht das gesamte Dokument?

Ja, IronOCR ermöglicht es Ihnen, bestimmte Seiten aus einem PDF-Dokument zu lesen, indem es Seitenindizes bereitstellt. Anstatt das gesamte Dokument zu verarbeiten, können Sie mithilfe des OcrPdfInput-Objekts angeben, aus welchen Seiten der Text extrahiert werden soll, wodurch der OCR-Prozess bei großen Dokumenten effizienter wird.

Wie sieht der minimale Arbeitsablauf für OCR bei einer PDF-Datei aus?

Der minimale Arbeitsablauf mit IronOCR besteht aus 5 Schritten: 1) Herunterladen der C#-Bibliothek, 2) Vorbereiten Ihres PDF-Dokuments, 3) Erstellen eines OcrPdfInput-Objekts mit dem PDF-Dateipfad, 4) Verwenden der Read-Methode zur Durchführung der OCR und 5) Optionales Festlegen von Seitenindizes für das selektive Lesen.

Wann sollte ich die DPI-Einstellungen für PDF OCR anpassen?

Während die Standard-DPI-Einstellungen von IronOCR für die meisten Standard-PDFs gut funktionieren, sollten Sie eine Anpassung der DPI in Betracht ziehen, wenn Sie mit gescannten Dokumenten mit niedriger Auflösung (unter 200 DPI) oder PDFs mit kleinem Text arbeiten. Höhere DPI-Einstellungen in der OcrPdfInput-Konstruktion können die Lesegenauigkeit für spezielle Dokumente erheblich verbessern.

Funktioniert die OCR-Engine sowohl mit gescannten als auch mit durchsuchbaren PDFs?

Ja, IronOCR verarbeitet sowohl gescannte PDFs (bildbasiert) als auch durchsuchbare PDFs (textbasiert) effektiv. Die auf Tesseract basierende Engine verarbeitet automatisch verschiedene PDF-Typen, so dass sie vielseitig einsetzbar ist, um Text aus verschiedenen PDF-Formaten zu extrahieren, ohne dass unterschiedliche Ansätze erforderlich sind.

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

Weiterlesen
Rezensiert von
Jeff Fritz
Jeffrey T. Fritz
Principal Program Manager - .NET Community Team
Jeff ist außerdem Principal Program Manager für das .NET- und Visual Studio-Team. Er ist der ausführende Produzent der .NET Conf Virtual Conference Series und moderiert ‚Fritz and Friends‘, einen Livestream für Entwickler, der zweimal wöchentlich ausgestrahlt wird. Dort spricht er über Technik und schreibt gemeinsam mit den Zuschauern Code. Jeff schreibt Workshops, Präsentationen und plant Inhalte für die größten Microsoft-Entwicklerveranstaltungen, einschließlich Microsoft Build, Microsoft Ignite, .NET Conf und dem Microsoft MVP Summit.
Bereit anzufangen?
Nuget Downloads 5,246,844 | Version: 2025.12 gerade veröffentlicht