Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR

PDF Datenextraktion .NET: Vollständiges Entwicklerhandbuch

Extrahieren Sie Text, Tabellen, Formulare und Bilder aus PDFs in .NET mit IronPDF mit nur wenigen Codezeilen – installieren Sie es über NuGet, laden Sie Ihr PDF und rufen Sie ExtractAllText () auf, um in weniger als 5 Minuten loszulegen.

PDF-Dokumente sind im Geschäftsleben allgegenwärtig: Rechnungen, Berichte, Verträge und Handbücher. Doch die programmatische Gewinnung wichtiger Informationen aus diesen Daten kann schwierig sein. PDFs konzentrieren sich auf das Aussehen, nicht auf den Datenzugriff. Für Entwickler, die mit OCR in C# arbeiten, stellt dies besondere Herausforderungen beim Umgang mit gescannten Dokumenten dar.

Für .NET-Entwickler ist IronPDF eine leistungsstarke .NET-PDF-Bibliothek, die das Extrahieren von Daten aus PDF-Dateien erleichtert. Sie können Text, Tabellen, Formularfelder, Bilder und Anhänge direkt aus den eingegebenen PDF-Dokumenten extrahieren. Ob Sie die Rechnungsverarbeitung automatisieren, eine Wissensdatenbank aufbauen oder Berichte erstellen – diese Bibliothek spart Ihnen viel Zeit. Bei der Arbeit mit gescannten PDFs benötigen Sie möglicherweise auch Funktionen zur Texterkennung (OCR), um bildbasierte Inhalte zu verarbeiten.

Dieser Leitfaden führt Sie durch praktische Beispiele zum Extrahieren von Textinhalten, Tabellendaten und Formularfeldwerten. Nach jedem Codeabschnitt finden Sie Erläuterungen, damit Sie diese an Ihre eigenen Projekte anpassen können. Wenn Sie auch mit anderen Dokumenttypen arbeiten, könnte es hilfreich sein, das Lesen gescannter Dokumente oder die Konvertierung von TIFF in durchsuchbare PDF-Dateien zu prüfen.

Wie fange ich mit IronPDF an?

Die Installation von IronPDF dauert Sekunden über den NuGet-Paket-Manager. Öffnen Sie Ihre Package Manager Console und führen Sie aus:

Install-Package IronPDF
Install-Package IronPDF
$vbLabelText   $csharpLabel

Für komplexere Installationsszenarien konsultieren Sie bitte die Dokumentation der NuGet-Pakete . Sobald installiert, können Sie sofort mit der Verarbeitung von Eingabe-PDF-Dokumenten beginnen. Hier ist ein minimales .NET-Beispiel, das die Einfachheit der IronPDF-API demonstriert:

using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);
using IronPdf;
// Load any PDF document
var pdf = PdfDocument.FromFile("document.pdf");
// Extract all text with one line
string allText = pdf.ExtractAllText();
Console.WriteLine(allText);
$vbLabelText   $csharpLabel

Dieser Code lädt eine PDF-Datei und extrahiert jeden einzelnen Text. IronPDF handhabt automatisch komplexe PDF-Strukturen, Formulardaten und Kodierungen, die normalerweise bei anderen Bibliotheken Probleme verursachen. Die extrahierten Daten aus PDF-Dokumenten können in einer Textdatei gespeichert oder weiter zur Analyse verarbeitet werden. Für komplexere Extraktionsanforderungen sollten Sie spezielle Dokumentenverarbeitungstechniken in Betracht ziehen.

Praktischer Tipp: Sie können den extrahierten Text in einer .txt-Datei speichern, um ihn später weiterzuverarbeiten, oder ihn parsen, um Datenbanken, Excel-Tabellen oder Wissensdatenbanken zu füllen. Diese Methode eignet sich gut für Berichte, Verträge oder beliebige PDF-Dateien, bei denen Sie den Rohtext schnell benötigen. Bei Szenarien mit Tabellen sollten Sie sich mit dem Lesen von Tabellen in Dokumenten vertraut machen, um strukturiertere Daten zu extrahieren.

Wie sieht extrahierter Text aus?

! Geteilter Bildschirm: Links ein PDF-Dokument mit der Erklärung "Was ist ein PDF?", rechts ein Visual Studio-Konsolenfenster mit dem extrahierten Text aus diesem PDF.

Wie kann ich Daten von bestimmten Seiten extrahieren?

Anwendungen aus der realen Welt erfordern oft präzise Datenextraktion. IronPDF bietet mehrere Methoden, um wertvolle Informationen von bestimmten Seiten innerhalb eines PDFs zu extrahieren. Dieser Ansatz ähnelt der regionsspezifischen OCR-Extraktion , jedoch für PDFs. Für dieses Beispiel verwenden wir das folgende PDF:

PDF-Viewer mit einem Jahresbericht 2024, der eine Rechnungsübersichtstabelle mit Rechnungsnummern, Daten und Beträgen sowie Abschnitte zur Abteilungsleistung und Finanzübersicht enthält.

Der folgende Code extrahiert Daten von bestimmten Seiten innerhalb dieser PDF-Datei und gibt die Ergebnisse in unserer Konsole aus. Bei der Bearbeitung mehrseitiger Dokumente könnten sich auch Techniken zur Verarbeitung mehrseitiger TIFF-Dateien für ähnliche Herausforderungen als nützlich erweisen.

using IronPdf;
using System;
using System.Text.RegularExpressions;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
    string pageText = pdf.ExtractTextFromPage(pageIndex);
    // Split on 2 or more spaces (tables often flatten into space-separated values)
    var tokens = Regex.Split(pageText, @"\s{2,}");
    foreach (string token in tokens)
    {
        // Match totals, invoice headers, and invoice rows
        if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
        {
            Console.WriteLine($"Important: {token.Trim()}");
        }
    }
}
using IronPdf;
using System;
using System.Text.RegularExpressions;
// Load any PDF document
var pdf = PdfDocument.FromFile("AnnualReport2024.pdf");
// Extract from selected pages
int[] pagesToExtract = { 0, 2, 4 }; // Pages 1, 3, and 5
foreach (var pageIndex in pagesToExtract)
{
    string pageText = pdf.ExtractTextFromPage(pageIndex);
    // Split on 2 or more spaces (tables often flatten into space-separated values)
    var tokens = Regex.Split(pageText, @"\s{2,}");
    foreach (string token in tokens)
    {
        // Match totals, invoice headers, and invoice rows
        if (token.Contains("Invoice") || token.Contains("Total") || token.StartsWith("INV-"))
        {
            Console.WriteLine($"Important: {token.Trim()}");
        }
    }
}
$vbLabelText   $csharpLabel

Dieses Beispiel zeigt, wie man Text aus PDF-Dokumenten extrahiert, nach Schlüsselinformationen sucht und es auf die Speicherung in Datendateien oder eine Wissensdatenbank vorbereitet. Die Methode ExtractTextFromPage() behält die Lesereihenfolge des Dokuments bei und eignet sich daher perfekt für die Dokumentenanalyse und die Indexierung von Inhalten. Zur Verbesserung der Genauigkeit sollten Sie bei der Arbeit mit PDFs geringerer Qualität Bildoptimierungsfilter verwenden.

Die Microsoft Visual Studio-Debugkonsole zeigt extrahierte Rechnungsdaten mit Rechnungsübersicht, Datum, Beträgen und dem Endbetrag von 2.230,00 $ an.

Bei der Bearbeitung von Finanzdokumenten kann Ihnen das Financial Language Pack helfen, die Genauigkeit bei der Verwendung von Fachterminologie zu verbessern. Darüber hinaus kann die Fortschrittsverfolgung dazu beitragen, die Extraktionsleistung bei großen Dokumentenstapeln zu überwachen.

Wie extrahiere ich Tabellen aus PDFs?

Tabellen in PDF-Dateien haben keine native Struktur – es handelt sich lediglich um Textinhalte, die so positioniert sind, dass sie wie Tabellen aussehen. IronPDF extrahiert tabellarische Daten unter Wahrung der Layouts, sodass Sie diese in Excel- oder Textdateien verarbeiten können. Dies ist ähnlich wie die OCR-Zeichenerkennung , jedoch speziell für tabellarische Inhalte optimiert. Für dieses Beispiel verwenden wir diese PDF-Datei:

Beispielrechnung mit strukturierten Daten, Kundendetails, aufgeschlüsselten Produkten und einem Gesamtbetrag von 180,00 $

Unser Ziel ist es, die Daten aus der Tabelle selbst zu extrahieren und so die Fähigkeit von IronPDF zu demonstrieren, tabellarische Daten zu parsen. Für komplexere Szenarien der Tabellenextraktion empfiehlt sich das Lesen von Tabellen in Dokumenten , das maschinelles Lernen für komplexe Tabellenstrukturen nutzt.

using IronPdf;
using System;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
    if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
        continue;
    string[] rawCells = Regex.Split(line.Trim(), @"\s+");
    string[] cells;
    // If the line starts with "Product", combine first two tokens as product name
    if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
    {
        cells = new string[rawCells.Length - 1];
        cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
    }
    else
    {
        cells = rawCells;
    }
    // Keep header or table rows
    bool isTableOrHeader = cells.Length >= 2
                           && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
                               || Regex.IsMatch(cells[0], @"^INV-\d+"));
    if (isTableOrHeader)
    {
        Console.WriteLine($"Row: {string.Join("|", cells)}");
        string csvRow = string.Join(",", cells).Trim();
        csvBuilder.AppendLine(csvRow);
    }
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");
using IronPdf;
using System;
using System.Text;
using System.Text.RegularExpressions;
var pdf = PdfDocument.FromFile("example.pdf");
string rawText = pdf.ExtractAllText();
// Split into lines for processing
string[] lines = rawText.Split('\n');
var csvBuilder = new StringBuilder();
foreach (string line in lines)
{
    if (string.IsNullOrWhiteSpace(line) || line.Contains("Page"))
        continue;
    string[] rawCells = Regex.Split(line.Trim(), @"\s+");
    string[] cells;
    // If the line starts with "Product", combine first two tokens as product name
    if (rawCells[0].StartsWith("Product") && rawCells.Length >= 5)
    {
        cells = new string[rawCells.Length - 1];
        cells[0] = rawCells[0] + " " + rawCells[1]; // Combine Product + letter
        Array.Copy(rawCells, 2, cells, 1, rawCells.Length - 2);
    }
    else
    {
        cells = rawCells;
    }
    // Keep header or table rows
    bool isTableOrHeader = cells.Length >= 2
                           && (cells[0].StartsWith("Item") || cells[0].StartsWith("Product")
                               || Regex.IsMatch(cells[0], @"^INV-\d+"));
    if (isTableOrHeader)
    {
        Console.WriteLine($"Row: {string.Join("|", cells)}");
        string csvRow = string.Join(",", cells).Trim();
        csvBuilder.AppendLine(csvRow);
    }
}
// Save as CSV for Excel import
File.WriteAllText("extracted_table.csv", csvBuilder.ToString());
Console.WriteLine("Table data exported to CSV");
$vbLabelText   $csharpLabel

Tabellen in PDFs sind normalerweise nur Text, der so positioniert ist, dass er wie ein Raster aussieht. Diese Überprüfung hilft zu bestimmen, ob eine Zeile zu einer Tabellenzeile oder einem -header gehört. Durch das Herausfiltern von Kopf- und Fußzeilen sowie nicht zusammengehörigem Text können Sie saubere Tabellendaten aus einer PDF-Datei extrahieren, die für die Konvertierung in CSV- oder Excel-Dateien geeignet sind. Für die Verarbeitung von Belegen und Rechnungen mit komplexem Layout empfehlen wir die AdvancedScan-Erweiterung .

Dieser Workflow funktioniert für PDF-Formulare, Finanzdokumente und Berichte. Sie können die Daten aus den PDFs später in xlsx-Dateien umwandeln oder sie in eine Zip-Datei zusammenführen, die alle nützlichen Daten enthält. Für komplexe Tabellen mit zusammengeführten Zellen müssen Sie möglicherweise die Parsing-Logik basierend auf den Spaltenpositionen anpassen. Die Dokumentation zur Datenausgabe enthält detaillierte Anleitungen zum Umgang mit strukturierten Ergebnissen.

! Excel-Tabelle mit Produktinventar und Spalten für Artikel, Menge, Preis und berechnete Gesamtwerte

Zur Verbesserung der Genauigkeit bei der Tabellenextraktion sollten Sie Computer-Vision-Verfahren einsetzen, um Tabellenbereiche vor der Verarbeitung automatisch zu erkennen. Dieser Ansatz kann die Ergebnisse bei komplexen Layouts deutlich verbessern.

Wie extrahiere ich Formularfelddaten?

IronPDF übernimmt auch das Extrahieren und Ändern von Formularfelddaten, ähnlich wie beim Lesen von Reisepässen für strukturierte Dokumente:

using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
    Console.WriteLine($"{field.Name}: {field.Value}");
    // Update form values if needed
    if (field.Name == "customer_name")
    {
        field.Value = "Updated Value";
    }
}
// Save modified form
pdf.SaveAs("updated_form.pdf");
using IronPdf;
using System.Drawing;
using System.Linq;
var pdf = PdfDocument.FromFile("form_document.pdf");
// Extract form field data
var form = pdf.Form;
foreach (var field in form) // Removed '.Fields' as 'FormFieldCollection' is enumerable
{
    Console.WriteLine($"{field.Name}: {field.Value}");
    // Update form values if needed
    if (field.Name == "customer_name")
    {
        field.Value = "Updated Value";
    }
}
// Save modified form
pdf.SaveAs("updated_form.pdf");
$vbLabelText   $csharpLabel

Dieser Code extrahiert Formularfeldwerte aus PDFs und ermöglicht deren programmatische Aktualisierung. Dadurch wird die Verarbeitung von PDF-Formularen vereinfacht und es können bestimmte Informationsbereiche für Analysen oder die Berichtserstellung extrahiert werden. Dies ist nützlich zur Automatisierung von Arbeitsabläufen wie Kundeneinführung, Umfrageverarbeitung oder Datenvalidierung. Für die Verarbeitung von Ausweisdokumenten sollten Sie die Best Practices der OCR-Texterkennung für Ausweisdokumente erkunden.

Direkter Vergleich zweier PDF-Formulare mit den Ergebnissen der Datenextraktion – Originalformular links mit den Daten von "John Doe", aktualisiertes Formular rechts mit dem aktualisierten Wert, der die erfolgreiche Datenextraktion und -änderung zeigt.

Bei Formularen mit Kontrollkästchen und Optionsfeldern kann es erforderlich sein, für spezielle Feldtypen eine benutzerdefinierte Logik ähnlich der Barcode- und QR-Code-Erkennung zu implementieren. Die Dokumentation der OcrResult-Klasse enthält detaillierte Informationen zur Verarbeitung verschiedener Ergebnistypen.

Was soll ich als Nächstes tun?

IronPDF macht die Datenextraktion aus PDFs in .NET praktisch und effizient. Sie können Bilder, Text, Tabellen, Formularfelder und sogar Anhänge aus einer Vielzahl von PDF-Dokumenten extrahieren, einschließlich gescannter PDFs, die normalerweise zusätzliche OCR-Verarbeitung erfordern. Für gescannte Dokumente bietet die Kombination von IronPDF mit IronOCR umfassende Möglichkeiten zur Dokumentenverarbeitung.

Egal ob Sie eine Wissensdatenbank aufbauen, Berichtsprozesse automatisieren oder Daten aus Finanz-PDFs extrahieren möchten – diese Bibliothek bietet Ihnen die Werkzeuge, um dies ohne manuelles Kopieren oder fehleranfälliges Parsen zu erledigen. Es ist einfach, schnell und lässt sich direkt in Visual Studio-Projekte integrieren. Für den Einsatz unterstützt IronPDF verschiedene Plattformen, darunter Windows , Linux , Docker und Cloud-Plattformen wie AWS und Azure .

Probieren Sie es aus – Sie sparen damit wahrscheinlich Zeit und vermeiden die üblichen Probleme bei der Arbeit mit PDFs. Für Startups und kleine Teams bieten die Lizenzoptionen flexible Tarife, die mit Ihren Bedürfnissen mitwachsen. Sie können auch die Implementierung von Lizenzschlüsseln für Produktionsumgebungen untersuchen.

Bereit, PDF-Datenextraktion in Ihre Anwendungen zu integrieren? Klingt IronPDF nach der .NET-Bibliothek für Sie? Starten Sie Ihre kostenlose Testversion, um den vollen Funktionsumfang zu nutzen, oder erkunden Sie unsere Lizenzoptionen für die kommerzielle Nutzung. Besuchen Sie unsere Dokumentation für umfassende Anleitungen und API-Referenzen. Für eine schnelle Umsetzung sehen Sie sich unsere Demos und Codebeispiele an, um in wenigen Minuten loszulegen.

Häufig gestellte Fragen

Was ist die größte Herausforderung bei der Extraktion von Daten aus PDF-Dokumenten?

PDF-Dokumente sind in erster Linie darauf ausgelegt, Inhalte in einem bestimmten Layout darzustellen, was die programmatische Extraktion von Daten erschwert, da der Schwerpunkt auf dem Aussehen und nicht auf der Zugänglichkeit der Daten liegt.

Wie kann IronOCR bei der PDF-Datenextraktion in .NET helfen?

IronOCR bietet Werkzeuge zum Extrahieren von Text und Daten aus PDF-Dateien, einschließlich gescannter Dokumente, durch die Verwendung von optischer Zeichenerkennung (OCR), um Bilder von Text in maschinenlesbare Daten umzuwandeln.

Kann IronOCR gescannte PDF-Dokumente verarbeiten?

Ja, IronOCR ist in der Lage, gescannte PDFs zu verarbeiten, indem es eine fortschrittliche OCR-Technologie verwendet, um Text aus den Bildern im Dokument zu erkennen und zu extrahieren.

Welche Programmiersprache wird mit IronOCR für die PDF-Datenextraktion verwendet?

IronOCR ist für die Verwendung mit C# konzipiert und damit eine ausgezeichnete Wahl für Entwickler, die innerhalb des .NET Frameworks arbeiten, um Daten aus PDFs zu extrahieren.

Gibt es Code-Beispiele für die PDF-Datenextraktion mit IronOCR?

Ja, das Handbuch enthält vollständige C#-Codebeispiele, um zu demonstrieren, wie man mit IronOCR effektiv Daten aus PDF-Dateien extrahiert.

Kann IronOCR Tabellen aus PDF-Dokumenten parsen?

IronOCR enthält Funktionen zum Parsen von Tabellen aus PDF-Dokumenten, so dass Entwickler strukturierte Daten effizient extrahieren können.

Welche Arten von PDF-Inhalten kann IronOCR extrahieren?

IronOCR kann verschiedene Arten von Inhalten aus PDFs extrahieren, darunter Text, Tabellen und Daten aus gescannten Bildern, was es zu einem vielseitigen Werkzeug für die Datenextraktion macht.

Kannaopat Udonpant
Software Ingenieur
Bevor er Software-Ingenieur wurde, absolvierte Kannapat ein PhD in Umweltressourcen an der Hokkaido University in Japan. Während seines Studiums wurde Kannapat auch Mitglied des Vehicle Robotics Laboratory, das Teil der Fakultät für Bioproduktionstechnik ist. Im Jahr 2022 nutzte er seine C#-Kenntnisse, um dem Engineering-Team von Iron Software ...
Weiterlesen