Zum Fußzeileninhalt springen
VERWENDUNG VON IRONOCR

.NET OCR SDK: Eine Texterkennungsbibliothek für C#

Ein .NET OCR SDK ist ein Software Development Kit, mit dem C#- und .NET Anwendungen programmatisch Text aus Bildern, gescannten PDFs und anderen Dokumentformaten extrahieren können. IronOCR ist ein produktionsreifes .NET OCR SDK, das eine optimierte Tesseract 5-Engine mit Vorverarbeitungsfiltern, Barcode-Lesung, durchsuchbarer PDF-Ausgabe und Unterstützung für mehr als 125 Sprachen umschließt – alles zugänglich über eine übersichtliche C#-API, die unter Windows, Linux, macOS und Cloud-Plattformen funktioniert.

Warum ist IronOCR das richtige .NET OCR SDK für Ihr Projekt?

Die Entwicklung einer Texterkennung von Grund auf bedeutet die Verwaltung von Bildvorverarbeitungspipelines, Sprachdatendateien, Threading-Modellen und Ausgabeanalyse – monatelange Arbeit, bevor man das erste Wort extrahieren kann. IronOCR beseitigt diesen Aufwand, indem es eine praxiserprobte Engine liefert, die Ihr Team innerhalb von Minuten in ein Projekt integrieren kann.

Wesentliche Merkmale, die es von herkömmlichen Tesseract-Bindungen unterscheiden:

  • Erkennung von über 125 Sprachen und Schriftsystemen, einschließlich handgeschriebener Texte
  • Integrierte Filter: Rauschunterdrückung, Entzerrung, Binarisierung, Auflösungsverbesserung und Kontrastkorrektur
  • Barcode- und QR-Code-Erkennung innerhalb desselben Lesevorgangs
  • Generierung durchsuchbarer PDFs mit unsichtbaren Textebenen für Archivierungs-Workflows
  • Asynchrone und parallele Stapelverarbeitung für Pipelines mit hohem Durchsatz
  • Zonale OCR zur gezielten Bearbeitung bestimmter Seitenbereiche, um die Verarbeitungszeit zu verkürzen
  • Plattformübergreifende Unterstützung für Windows, Linux, macOS, Docker und Azure

Laut der Dokumentation des Tesseract OCR-Projekts erfordert die Rohversion von Tesseract eine manuelle Konfiguration für Sprachpakete, DPI-Einstellungen und Ausgabemodi. IronOCR erledigt das alles automatisch, sodass Sie sich auf die Bedeutung des extrahierten Textes konzentrieren können, anstatt auf die Extraktion selbst.

Wie schneidet IronOCR im Vergleich zu Raw Tesseract ab?

Die Verwendung von Raw Tesseract über einen P/Invoke-Wrapper oder das NuGet Paket Tesseract überlässt es Ihnen, Folgendes zu tun: Herunterladen und Platzieren der tessdata-Sprachdateien, Auswählen des richtigen Seitensegmentierungsmodus, selbstständiges Aufteilen von mehrseitigen TIFF- und PDF-Dateien sowie Einrichten von Threads, falls Sie eine parallele Verarbeitung wünschen. Keines dieser Details ist spezifisch für Ihr geschäftliches Problem.

IronOCR kapselt diese gesamte Infrastruktur. Sie erhalten eine typisierte API-Oberfläche, automatisches Tessdata-Management, integrierte PDF-Aufteilung und -Zusammenführung sowie eine threadsichere Engine, die Sie für mehrere Anfragen wiederverwenden können. Im Gegenzug wird eine kostenpflichtige Lizenz für den Produktiveinsatz benötigt – auf der Lizenzseite werden die aktuellen Preisstufen einschließlich einer kostenlosen Entwicklungslizenz angezeigt.

Für Teams, die ausschließlich auf Open-Source-Abhängigkeiten angewiesen sind, ist die Verwendung von reinem Tesseract in Plus mit einer benutzerdefinierten Vorverarbeitung ein praktikabler Weg. Für Teams, die schnell zuverlässige OCR-Lösungen bereitstellen müssen, reduziert IronOCR die Integrationsfläche auf wenige Zeilen C#.

Wie installiert man das IronOCR .NET SDK?

Die Installation erfolgt über NuGet, den Standard-Paketmanager for .NET . Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus:

Install-Package IronOcr

Visual Studio-Benutzer können über die Benutzeroberfläche des NuGet Paketmanagers nach IronOcr suchen und das Paket von dort installieren. Die vollständigen Installationsoptionen einschließlich manueller DLL-Referenzen finden Sie in der IronOCR Installationsdokumentation .

Nach der Installation fügen Sie den Lizenzschlüssel beim Start Ihrer Anwendung oder appsettings.json hinzu. Sie können eine kostenlose Testphase starten , um einen Testschlüssel zu erhalten, der während der Testphase alle Funktionen freischaltet.

Überprüfung der Installation

Eine kurze Funktionsprüfung nach der Installation bestätigt, dass alles korrekt verkabelt ist. Erstellen Sie eine Konsolenanwendung, die auf .NET 10 abzielt:

using IronOcr;

// Minimal smoke test -- reads a single image and prints extracted text
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("sample.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

// Minimal smoke test -- reads a single image and prints extracted text
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadImage("sample.png");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Wenn Text in der Konsole erscheint, ist das SDK installiert und der Lizenzschlüssel gültig. Sie sind nun bereit, Produktionsabläufe zu erstellen.

Wie extrahiert man Text aus Bildern und PDFs in C#?

Das Kernextraktionsmuster ist für alle Eingabetypen konsistent. Sie erstellen eine IronTesseract-Instanz, laden Inhalte in ein OcrInput-Objekt und rufen Read() auf. IronOCR erkennt das Dateiformat automatisch anhand der Dateiendung, sodass derselbe Codepfad JPEG, PNG, TIFF, BMP und mehrseitige PDFs verarbeitet.

using IronOcr;

// Reusable OCR service encapsulating the IronTesseract engine
public class OcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ExtractText(string filePath)
    {
        using var input = new OcrInput();

        // LoadPdf for PDF files; LoadImage for raster formats
        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        return _ocr.Read(input).Text;
    }

    public async Task<string> ExtractTextAsync(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        var result = await _ocr.ReadAsync(input);
        return result.Text;
    }
}
using IronOcr;

// Reusable OCR service encapsulating the IronTesseract engine
public class OcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ExtractText(string filePath)
    {
        using var input = new OcrInput();

        // LoadPdf for PDF files; LoadImage for raster formats
        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        return _ocr.Read(input).Text;
    }

    public async Task<string> ExtractTextAsync(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        var result = await _ocr.ReadAsync(input);
        return result.Text;
    }
}
$vbLabelText   $csharpLabel

Hauptzugangspunkt zur Nutzung des Dienstes:

using IronOcr;

var service = new OcrService();
string text = await service.ExtractTextAsync("invoice.pdf");
Console.WriteLine(text);
using IronOcr;

var service = new OcrService();
string text = await service.ExtractTextAsync("invoice.pdf");
Console.WriteLine(text);
$vbLabelText   $csharpLabel

Die IronTesseract-Instanz ist threadsicher und für die Wiederverwendung ausgelegt. Erstellen Sie es einmalig beim Start der Anwendung (z. B. über Dependency Injection in ASP.NET Core), anstatt es bei jeder Anfrage neu zu instanziieren.

Bei mehrseitigen PDFs ermöglicht Ihnen result.Pages den Zugriff auf den Text, den Konfidenzwert und die Begrenzungsrahmen pro Seite. Einzelheiten zur seitenweisen Iteration finden Sie im mehrseitigen PDF-OCR-Leitfaden .

Wie lässt sich die Genauigkeit der OCR-Texturierung mithilfe von Vorverarbeitungsfiltern verbessern?

Rohscans von Flachbettscannern, Smartphone-Kameras oder Faxgeräten leiden häufig unter Rauschen, Rotation, geringem Kontrast und unzureichender Auflösung. Die Bildqualitätskorrektur-Pipeline von IronOCR geht jedes Problem mit gezielten Filtern an, die Sie vor dem Leseaufruf verketten.

using IronOcr;

public class AccuracyOptimizedOcr
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ProcessLowQualityDocument(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        // Chain preprocessing filters in order of operation
        input.DeNoise();              // Remove scan artifacts and speckling
        input.Deskew();               // Correct page tilt up to 35 degrees
        input.Scale(150);             // Enlarge small text for better recognition
        input.Binarize();             // Convert to black/white for cleaner edges
        input.EnhanceResolution(300); // Sharpen blurry or low-DPI input

        var result = _ocr.Read(input);

        // Confidence below 70 often signals a preprocessing mismatch
        if (result.Confidence < 70)
            Console.WriteLine($"Warning: low confidence ({result.Confidence:F1}%)");

        return result.Text;
    }
}
using IronOcr;

public class AccuracyOptimizedOcr
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ProcessLowQualityDocument(string filePath)
    {
        using var input = new OcrInput();

        if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(filePath);
        else
            input.LoadImage(filePath);

        // Chain preprocessing filters in order of operation
        input.DeNoise();              // Remove scan artifacts and speckling
        input.Deskew();               // Correct page tilt up to 35 degrees
        input.Scale(150);             // Enlarge small text for better recognition
        input.Binarize();             // Convert to black/white for cleaner edges
        input.EnhanceResolution(300); // Sharpen blurry or low-DPI input

        var result = _ocr.Read(input);

        // Confidence below 70 often signals a preprocessing mismatch
        if (result.Confidence < 70)
            Console.WriteLine($"Warning: low confidence ({result.Confidence:F1}%)");

        return result.Text;
    }
}
$vbLabelText   $csharpLabel

Hinweise zur Filterauswahl:

  • DeNoise() -- Verwendung für Scans mit starker Fleckenbildung oder Kompressionsartefakten
  • Deskew() -- Verwendung, wenn Dokumente schräg fotografiert werden; Siehe Seitenrotationserkennung für automatische Erkennung
  • Scale() -- Verwendung für kleine Schriftgrößen oder Eingaben unter 150 DPI; Werte zwischen 150 und 200 liefern in der Regel die besten Ergebnisse.
  • Binarize() -- Verwendung für farbige oder Farbverlaufshintergründe; Konvertiert das Bild in ein striktes Schwarzweißbild.
  • EnhanceResolution() -- Verwendung für unscharfen oder kontrastarmen Text; Tesseract zielt auf 300 DPI als optimalen Einstellungsbereich ab.

Die im International Journal on Document Analysis and Recognition veröffentlichten Forschungsergebnisse zeigen übereinstimmend, dass Binarisierung und Entzerrung die beiden wichtigsten Vorverarbeitungsschritte zur Verbesserung der Zeichenerkennungsrate sind. Verwenden Sie beides als Grundlage für jede Produktionspipeline.

IronOCR Vorverarbeitungsfilter und ihre wichtigsten Anwendungsfälle
Filter Problem gelöst Wann bewerben?
`DeNoise()` Scannerartefakte, Speckle-Rauschen Beliebiger Flachbett- oder Faxscanner
`Deskew()` Seitenneigung und -drehung Fotografierte oder falsch ausgerichtete Dokumente
`Scale()` Kleiner Text oder niedrige DPI-Auflösung Eingabe unter 150 DPI
`Binarize()` Farbige Hintergründe, Farbverläufe Farbiges Papier oder wasserzeichenbeschichtete Formulare
`EnhanceResolution()` Unscharf und geringer Kontrast Kameraaufnahmen und komprimierte JPEGs

Wie baut man eine Produktionspipeline für die Stapelverarbeitung auf?

Die Extraktion einzelner Dokumente ist unkompliziert, in Produktionsszenarien hingegen treffen Hunderte oder Tausende von Dateien in Warteschlangen, freigegebenen Ordnern oder Cloud-Speichern ein. Dank der asynchronen API und der threadsicheren Engine eignet sich IronOCR für parallele Arbeitslasten.

using IronOcr;
using Microsoft.Extensions.Logging;

public class ProductionOcrService
{
    private readonly IronTesseract _ocr;
    private readonly ILogger<ProductionOcrService> _logger;

    public ProductionOcrService(ILogger<ProductionOcrService> logger)
    {
        _logger = logger;
        _ocr = new IronTesseract
        {
            Configuration =
            {
                RenderSearchablePdfsAndHocr = true,
                ReadBarCodes = true
            }
        };
    }

    public async Task<IReadOnlyList<string>> ProcessBatchAsync(
        IEnumerable<string> filePaths,
        int maxDegreeOfParallelism = 4)
    {
        var results = new System.Collections.Concurrent.ConcurrentBag<string>();

        var options = new ParallelOptions
        {
            MaxDegreeOfParallelism = maxDegreeOfParallelism
        };

        await Parallel.ForEachAsync(filePaths, options, async (filePath, ct) =>
        {
            try
            {
                using var input = new OcrInput();

                if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
                    input.LoadPdf(filePath);
                else
                    input.LoadImage(filePath);

                var result = await _ocr.ReadAsync(input);
                results.Add(result.Text);
                _logger.LogInformation("Processed {FilePath} at {Confidence:F1}% confidence",
                    filePath, result.Confidence);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "OCR failed for {FilePath}", filePath);
                results.Add(string.Empty);
            }
        });

        return results.ToList();
    }

    public void CreateSearchablePdf(string inputPath, string outputPath)
    {
        using var input = new OcrInput();

        if (inputPath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(inputPath);
        else
            input.LoadImage(inputPath);

        _ocr.Read(input).SaveAsSearchablePdf(outputPath);
        _logger.LogInformation("Searchable PDF written to {OutputPath}", outputPath);
    }
}
using IronOcr;
using Microsoft.Extensions.Logging;

public class ProductionOcrService
{
    private readonly IronTesseract _ocr;
    private readonly ILogger<ProductionOcrService> _logger;

    public ProductionOcrService(ILogger<ProductionOcrService> logger)
    {
        _logger = logger;
        _ocr = new IronTesseract
        {
            Configuration =
            {
                RenderSearchablePdfsAndHocr = true,
                ReadBarCodes = true
            }
        };
    }

    public async Task<IReadOnlyList<string>> ProcessBatchAsync(
        IEnumerable<string> filePaths,
        int maxDegreeOfParallelism = 4)
    {
        var results = new System.Collections.Concurrent.ConcurrentBag<string>();

        var options = new ParallelOptions
        {
            MaxDegreeOfParallelism = maxDegreeOfParallelism
        };

        await Parallel.ForEachAsync(filePaths, options, async (filePath, ct) =>
        {
            try
            {
                using var input = new OcrInput();

                if (filePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
                    input.LoadPdf(filePath);
                else
                    input.LoadImage(filePath);

                var result = await _ocr.ReadAsync(input);
                results.Add(result.Text);
                _logger.LogInformation("Processed {FilePath} at {Confidence:F1}% confidence",
                    filePath, result.Confidence);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "OCR failed for {FilePath}", filePath);
                results.Add(string.Empty);
            }
        });

        return results.ToList();
    }

    public void CreateSearchablePdf(string inputPath, string outputPath)
    {
        using var input = new OcrInput();

        if (inputPath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(inputPath);
        else
            input.LoadImage(inputPath);

        _ocr.Read(input).SaveAsSearchablePdf(outputPath);
        _logger.LogInformation("Searchable PDF written to {OutputPath}", outputPath);
    }
}
$vbLabelText   $csharpLabel

Die MaxDegreeOfParallelism-Kappe verhindert Speichermangel bei großen Dateien. Ein Wert von 4 funktioniert gut auf einem Server mit vier Kernen; Erhöhen Sie den Wert erst nach der Analyse der Speichernutzung. Bei Azure Functions- oder AWS Lambda-Bereitstellungen sollte die Parallelität auf 1 pro Funktionsinstanz eingestellt und stattdessen horizontal skaliert werden.

CreateSearchablePdf erzeugt ein PDF, in dem das Originalbild als sichtbare Ebene erhalten bleibt und der erkannte Text unsichtbar darunter eingebettet wird. Dies ermöglicht die Volltextsuche in PDF-Viewern und die Indexierung durch Suchmaschinen – eine gängige Anforderung bei Dokumentenmanagementsystemen .

Überwachung der Vertrauenswerte in der Produktion

Jeder OcrResult stellt eine Confidence Eigenschaft (0-100) bereit, die widerspiegelt, wie sicher sich die Engine bei der Erkennung des Textes ist. Durch die Überwachung dieser Kennzahl in Ihrer Protokollierungsinfrastruktur erhalten Sie ein Frühwarnsignal, wenn sich die Dokumentqualität verschlechtert – beispielsweise, wenn die Kalibrierung eines Scanners abweicht oder ein neuer Dokumentenlieferant Scans mit niedrigerer DPI-Auflösung als erwartet liefert.

Eine praktische Schwellenwertstrategie: Bei einem Konfidenzwert unter 80 % wird eine Warnung ausgegeben, bei unter 70 % wird ein Vorverarbeitungs-Wiederholungsdurchlauf ausgelöst und bei unter 60 % werden Dokumente zur manuellen Überprüfung gekennzeichnet. Dieser gestaffelte Ansatz erkennt Qualitätsprobleme, bevor sie zu unbemerkten Datenbeschädigungen in nachgelagerten Systemen führen.

Die Microsoft .NET Protokollierungsdokumentation behandelt die ILogger-Muster, die im obigen Batch-Dienst verwendet werden, für Teams, die mit dem integrierten DI-Container von ASP.NET Core arbeiten.

Wie extrahiert man strukturierte Daten aus gescannten Dokumenten?

Die Textextraktion ist der erste Schritt. Im zweiten Schritt wird dieser Text in typisierte Felder unterteilt, die Ihre Anwendung verarbeiten kann. Dieses Muster kombiniert den Lesedurchlauf von IronOCR mit .NETs Regex, um strukturierte Daten aus Rechnungen, Formularen und Berichten zu extrahieren.

using IronOcr;
using System.Text.RegularExpressions;

public record Invoice(
    string? InvoiceNumber,
    DateOnly? Date,
    decimal? TotalAmount,
    string RawText
);

public class InvoiceOcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public Invoice ExtractInvoiceData(string invoicePath)
    {
        using var input = new OcrInput();

        if (invoicePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(invoicePath);
        else
            input.LoadImage(invoicePath);

        input.DeNoise();
        input.Deskew();

        var result = _ocr.Read(input);
        string text = result.Text;

        return new Invoice(
            InvoiceNumber: ExtractInvoiceNumber(text),
            Date: ExtractDate(text),
            TotalAmount: ExtractAmount(text),
            RawText: text
        );
    }

    private static string? ExtractInvoiceNumber(string text)
    {
        var match = Regex.Match(text, @"Invoice\s*#?:?\s*(\S+)", RegexOptions.IgnoreCase);
        return match.Success ? match.Groups[1].Value : null;
    }

    private static DateOnly? ExtractDate(string text)
    {
        // Numeric format: MM/DD/YYYY
        var numeric = Regex.Match(text, @"\b(\d{1,2}/\d{1,2}/\d{2,4})\b");
        if (numeric.Success && DateTime.TryParse(numeric.Groups[1].Value, out var d1))
            return DateOnly.FromDateTime(d1);

        // Written format: January 15, 2025
        var written = Regex.Match(text,
            @"\b(January|February|March|April|May|June|July|August|September|October|November|December)\s+(\d{1,2}),?\s+(\d{4})\b",
            RegexOptions.IgnoreCase);
        if (written.Success && DateTime.TryParse(written.Value, out var d2))
            return DateOnly.FromDateTime(d2);

        return null;
    }

    private static decimal? ExtractAmount(string text)
    {
        var match = Regex.Match(text, @"\$\s*(\d+(?:\.\d{2})?)");
        return match.Success && decimal.TryParse(match.Groups[1].Value, out var amt)
            ? amt
            : null;
    }
}
using IronOcr;
using System.Text.RegularExpressions;

public record Invoice(
    string? InvoiceNumber,
    DateOnly? Date,
    decimal? TotalAmount,
    string RawText
);

public class InvoiceOcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public Invoice ExtractInvoiceData(string invoicePath)
    {
        using var input = new OcrInput();

        if (invoicePath.EndsWith(".pdf", StringComparison.OrdinalIgnoreCase))
            input.LoadPdf(invoicePath);
        else
            input.LoadImage(invoicePath);

        input.DeNoise();
        input.Deskew();

        var result = _ocr.Read(input);
        string text = result.Text;

        return new Invoice(
            InvoiceNumber: ExtractInvoiceNumber(text),
            Date: ExtractDate(text),
            TotalAmount: ExtractAmount(text),
            RawText: text
        );
    }

    private static string? ExtractInvoiceNumber(string text)
    {
        var match = Regex.Match(text, @"Invoice\s*#?:?\s*(\S+)", RegexOptions.IgnoreCase);
        return match.Success ? match.Groups[1].Value : null;
    }

    private static DateOnly? ExtractDate(string text)
    {
        // Numeric format: MM/DD/YYYY
        var numeric = Regex.Match(text, @"\b(\d{1,2}/\d{1,2}/\d{2,4})\b");
        if (numeric.Success && DateTime.TryParse(numeric.Groups[1].Value, out var d1))
            return DateOnly.FromDateTime(d1);

        // Written format: January 15, 2025
        var written = Regex.Match(text,
            @"\b(January|February|March|April|May|June|July|August|September|October|November|December)\s+(\d{1,2}),?\s+(\d{4})\b",
            RegexOptions.IgnoreCase);
        if (written.Success && DateTime.TryParse(written.Value, out var d2))
            return DateOnly.FromDateTime(d2);

        return null;
    }

    private static decimal? ExtractAmount(string text)
    {
        var match = Regex.Match(text, @"\$\s*(\d+(?:\.\d{2})?)");
        return match.Success && decimal.TryParse(match.Groups[1].Value, out var amt)
            ? amt
            : null;
    }
}
$vbLabelText   $csharpLabel

Dieser Ansatz eignet sich gut für die zonale OCR, wenn man genau weiß, wo sich jedes Feld in einem Formular befindet. Durch die Angabe eines Begrenzungsrechtecks ​​wird die Erkennung der gesamten Seite übersprungen und nur der Bereich, der die Rechnungsnummer oder den Gesamtbetrag enthält, gezielt angesprochen – wodurch die Bearbeitungszeit für Dokumente mit festem Layout drastisch reduziert wird.

Für komplexere Extraktionsszenarien, einschließlich Tabellen und strukturierter Formulare, sehen Sie sich die IronOCR Datenextraktionsbeispiele auf der Produktseite an.

Wie handhabt man mehrsprachige OCR in .NET?

Viele Organisationen verarbeiten Dokumente in mehr als einer Sprache – Import-/Exportformulare, internationale Verträge oder mehrsprachige Kundenanfragen. IronOCR löst dieses Problem, indem es Ihnen ermöglicht, das Sprachpaket vor dem Leseaufruf zu konfigurieren.

using IronOcr;

// Configure multi-language recognition
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;  // Swap for any of 125+ supported languages

// For mixed-language documents, combine language packs
ocr.AddSecondaryLanguage(OcrLanguage.German);

using var input = new OcrInput();
input.LoadPdf("multilingual-contract.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
using IronOcr;

// Configure multi-language recognition
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.EnglishBest;  // Swap for any of 125+ supported languages

// For mixed-language documents, combine language packs
ocr.AddSecondaryLanguage(OcrLanguage.German);

using var input = new OcrInput();
input.LoadPdf("multilingual-contract.pdf");
var result = ocr.Read(input);
Console.WriteLine(result.Text);
$vbLabelText   $csharpLabel

Auf der IronOCR -Sprachunterstützungsseite sind alle über 125 verfügbaren Sprachpakete mit Download-Anweisungen aufgelistet. Sprachpakete werden als NuGet Pakete ausgeliefert (z. B. IronOcr.Languages.German), sodass sie sich in denselben Paketverwaltungs-Workflow integrieren lassen, den Sie bereits verwenden.

Für Zeichensätze außerhalb des lateinischen Alphabets – Arabisch, Chinesisch, Japanisch, Koreanisch – bietet IronOCR optimierte Modelle, die die Schreibrichtung von rechts nach links und ideografische Schriften verarbeiten. Spezifische Konfigurationshinweise finden Sie im CJK-OCR-Leitfaden .

Was sind Ihre nächsten Schritte?

Sie verfügen nun über die notwendigen Muster, um jeder .NET 10-Anwendung eine OCR-Funktion in Produktionsqualität hinzuzufügen: grundlegende Textextraktion, Vorverarbeitung für schwierige Scans, asynchrone Stapelverarbeitung, Analyse strukturierter Daten und Unterstützung mehrerer Sprachen.

Erkunden Sie von hier aus diese Bereiche entsprechend Ihren Projektanforderungen:

Beginnen Sie mit der kostenlosen Testlizenz, um den vollen Funktionsumfang anhand Ihrer eigenen Dokumente zu testen, bevor Sie sich für eine höhere Lizenzstufe entscheiden.

NuGet Mit NuGet installieren

PM >  Install-Package IronOcr

Schauen Sie sich IronOCR auf NuGet für eine schnelle Installation an. Mit über 10 Millionen Downloads transformiert es die PDF-Entwicklung mit C#. Sie können auch das DLL oder den Windows Installer herunterladen.

Häufig gestellte Fragen

Was ist das .NET OCR SDK?

Das .NET OCR SDK von IronOCR ist eine Bibliothek, die entwickelt wurde, um optische Zeichenerkennung in C#-Anwendungen zu integrieren, wodurch Entwickler Text aus Bildern, PDFs und gescannten Dokumenten extrahieren können.

Was sind die Hauptmerkmale des .NET SDK von IronOCR?

Das .NET SDK von IronOCR bietet eine einfache API, Unterstützung für mehrere Sprachen, plattformübergreifende Kompatibilität und erweiterte Funktionen für die Verarbeitung verschiedener Dateiformate und schlecht gescannter Dokumente.

Wie geht IronOCR mit verschiedenen Sprachen um?

Das .NET SDK von IronOCR unterstützt mehrere Sprachen und ermöglicht die Textextraktion und -erkennung aus Dokumenten in verschiedenen Sprachen, ohne dass zusätzliche Konfigurationen erforderlich sind.

Kann IronOCR schlecht gescannte Dokumente verarbeiten?

Ja, IronOCR ist darauf ausgelegt, schlecht gescannte Dokumente effektiv zu bearbeiten und setzt fortschrittliche Algorithmen ein, um die Genauigkeit der Texterkennung auch in herausfordernden Szenarien zu verbessern.

Ist das .NET SDK von IronOCR plattformübergreifend?

Das .NET SDK von IronOCR ist plattformübergreifend, was bedeutet, dass es auf verschiedenen Betriebssystemen verwendet werden kann und somit vielseitig für verschiedene Entwicklungsumgebungen einsetzbar ist.

Welche Dateiformate unterstützt IronOCR?

IronOCR unterstützt eine breite Palette von Dateiformaten, einschließlich Bildern, PDFs und gescannten Dokumenten, und bietet Flexibilität für Texterkennungsaufgaben in verschiedenen Medien.

Wie können Entwickler IronOCR in ihre Projekte integrieren?

Entwickler können IronOCR mithilfe der typisierten API in ihre C#-Projekte integrieren, was den Prozess des Hinzufügens von OCR-Funktionalität zu Anwendungen vereinfacht.

Welche Anwendungsfälle gibt es für IronOCR?

IronOCR kann in Dokumentenmanagementsystemen, automatisierter Dateneingabe, Inhaltsdigitalisierung und jeder Anwendung, die Textextraktion aus Bildern oder PDFs benötigt, eingesetzt werden.

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

Iron Support Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an