Zum Fußzeileninhalt springen
MIT ANDEREN KOMPONENTEN VERGLEICHEN

IronOCR vs. Azure OCR PDF: Welche Lösung extrahiert Text besser?

TesseractOcrMaui legt eine Plattformgrenze fest in Ihre Architektur: Die Bibliothek existiert ausschließlich innerhalb von .NET MAUI Anwendungen und kann nicht von anderen Projekttypen referenziert werden. Jedes Team, das eine MAUI-Mobil-App zusammen mit einer ASP.NET CoreAPI, einer Azure Function oder einem Docker-gehosteten Backend betreibt, muss zwei völlig separate OCR-Implementierungen schreiben und pflegen – eine für die App, eine für alles andere. Das ist kein fehlendes Feature auf einer Roadmap; so wurde die Bibliothek konzipiert. Dieser Vergleich untersucht, welche Kosten diese Einschränkung in der Praxis verursacht und wo IronOCR sie beseitigt.

TesseractOcrMauiverstehen

TesseractOcrMaui ist ein Open-Source .NET MAUI -Wrapper für Tesseract 5.3.3, der von einem einzelnen Community-Entwickler, Henri Vainio, erstellt und gepflegt wird. Das Paket zielt auf net8.0-ios, net8.0-android und net8.0-windows ab — alle MAUI-Ziel-Frameworks. Es wurde entwickelt, um eine echte Lücke zu schließen: Da die bestehenden Tesseract-Wrapper for .NET die Interoperabilitätsanforderungen mobiler Plattformen nicht erfüllen konnten, hatten MAUI-Entwickler bis zum Erscheinen dieser Bibliothek keinen direkten Zugang zu Tesseract.

Die Architektur der Bibliothek basiert auf MAUI-spezifischer Abhängigkeitsinjektion. Sie registrieren die OCR-Engine über builder.Services.AddTesseractOcr() in MauiProgram.cs und injizieren dann ITesseract in Seiten und Dienste. Diese enge Kopplung an den MAUI DI-Container ist genau das, was es unmöglich macht, von einer Klassenbibliothek, einem Konsolentool oder einem Webprojekt darauf zu verweisen.

Wichtigste architektonische Merkmale:

  • MAUI-exklusive Ziel-Frameworks: net8.0-ios, net8.0-android und net8.0-windows nur — kein net8.0, kein netstandard2.1, kein Serverziel
  • Obligatorische AddTesseractOcr()-Registrierung: Engine ist über den MAUI-Dienstanbieter verdrahtet; kein eigenständiger Instanzierungspfad existiert
  • Traineddata nicht gebündelt: Sprachdateien (10–50 MB je) müssen manuell heruntergeladen, in Resources/Raw/tessdata/ abgelegt und als <MauiAsset> Elemente in der Projektdatei deklariert werden
  • Einziger Verantwortlicher: Henri Vainio ist der alleinige Entwickler; Bis 2026 wurden insgesamt rund 33.900 NuGet Downloads verzeichnet.
  • Apache 2.0-Lizenz: Kostenlos nutzbar ohne Lizenzkosten
  • Async-first-APOberfläche: InitAsync(language) und RecognizeTextAsync(imagePath) sind die beiden Hauptaufrufe; kein synchroner Pfad offengelegt wird

Die MAUI-Abhängigkeit im Code

Sobald Sie AddTesseractOcr() aufrufen, ist die OCR-Logik an den MAUI-Anwendungshost gebunden. Es gibt keine Möglichkeit, sie in eine gemeinsame Bibliothek zu extrahieren:

// MauiProgram.cs — this registration only compiles inside a MAUI project
public static MauiApp CreateMauiApp()
{
    var builder = MauiApp.CreateBuilder();
    builder.UseMauiApp<App>();

    // Registers ITesseract — MAUI DI only, no standalone equivalent
    builder.Services.AddTesseractOcr();

    return builder.Build();
}

// OCR service — ITesseract injected from MAUI container
public class MobileOcrService
{
    private readonly ITesseract _tesseract;

    public MobileOcrService(ITesseract tesseract)
    {
        _tesseract = tesseract; // Cannot be constructed outside MAUI host
    }

    public async Task<string> ExtractTextAsync(string imagePath)
    {
        await _tesseract.InitAsync("eng"); // traineddata must be bundled
        var result = await _tesseract.RecognizeTextAsync(imagePath);
        return result.Success ? result.RecognizedText : string.Empty;
    }
}
// MauiProgram.cs — this registration only compiles inside a MAUI project
public static MauiApp CreateMauiApp()
{
    var builder = MauiApp.CreateBuilder();
    builder.UseMauiApp<App>();

    // Registers ITesseract — MAUI DI only, no standalone equivalent
    builder.Services.AddTesseractOcr();

    return builder.Build();
}

// OCR service — ITesseract injected from MAUI container
public class MobileOcrService
{
    private readonly ITesseract _tesseract;

    public MobileOcrService(ITesseract tesseract)
    {
        _tesseract = tesseract; // Cannot be constructed outside MAUI host
    }

    public async Task<string> ExtractTextAsync(string imagePath)
    {
        await _tesseract.InitAsync("eng"); // traineddata must be bundled
        var result = await _tesseract.RecognizeTextAsync(imagePath);
        return result.Success ? result.RecognizedText : string.Empty;
    }
}
Imports Microsoft.Maui
Imports Microsoft.Extensions.DependencyInjection

' MauiProgram.vb — this registration only compiles inside a MAUI project
Public Module MauiProgram
    Public Function CreateMauiApp() As MauiApp
        Dim builder = MauiApp.CreateBuilder()
        builder.UseMauiApp(Of App)()

        ' Registers ITesseract — MAUI DI only, no standalone equivalent
        builder.Services.AddTesseractOcr()

        Return builder.Build()
    End Function
End Module

' OCR service — ITesseract injected from MAUI container
Public Class MobileOcrService
    Private ReadOnly _tesseract As ITesseract

    Public Sub New(tesseract As ITesseract)
        _tesseract = tesseract ' Cannot be constructed outside MAUI host
    End Sub

    Public Async Function ExtractTextAsync(imagePath As String) As Task(Of String)
        Await _tesseract.InitAsync("eng") ' traineddata must be bundled
        Dim result = Await _tesseract.RecognizeTextAsync(imagePath)
        Return If(result.Success, result.RecognizedText, String.Empty)
    End Function
End Class
$vbLabelText   $csharpLabel

Wenn Ihr Produkt so erweitert wird, dass es eine Backend-API umfasst, die dieselbe OCR-Logik benötigt – um hochgeladene Dokumente zu verarbeiten, gescannte Formulare zu validieren oder serverseitig durchsuchbare PDFs zu generieren –, ist dieser Code nicht wiederverwendbar. Nichts davon lässt sich außerhalb eines MAUI-Projekts kompilieren. Sie schreiben es mit einer anderen Bibliothek von Grund auf neu.

IronOCR verstehen

IronOCR ist eine kommerzielle OCR-Bibliothek für .NET , die eine optimierte Tesseract 5-Engine mit automatischer Bildvorverarbeitung, nativer PDF-Eingabe und threadsicherer Parallelverarbeitung kombiniert. Es wird als einzelnes NuGet-Paket (IronOcr) ausgeliefert, das auf net8.0, netstandard2.0 und alle Standard-.NET-Ziele ausgerichtet ist — was es von jedem Projekttyp in jeder Lösung referenzierbar macht.

Hauptmerkmale:

  • Universelle .NET -Unterstützung: Funktioniert in MAUI, ASP.NET Core, Konsolenanwendungen, WPF, WinForms, Azure Functions, AWS Lambda, Docker-Containern und gemeinsam genutzten Klassenbibliotheken – alles aus demselben Paket und mit derselben API.
  • Kein Tessdata-Management: Sprachdaten sind in separaten NuGet-Sprachpaketen gebündelt (IronOcr.Languages.French, etc.); Keine Datei-Downloads, keine Pfadkonfiguration, kein Versionsabgleich
  • Automatische Vorverarbeitung: Deskew(), DeNoise(), Contrast(), Binarize() und EnhanceResolution() sind Ein-Zeilen-Aufrufe auf OcrInput vor dem Einlesen
  • Natives PDF-Support: input.LoadPdf() verarbeitet gescannte PDFs direkt; result.SaveAsSearchablePdf() erzeugt indizierte Ausgabe
  • Dedizierte mobile Pakete: IronOcr.Android und IronOcr.iOS sind plattformoptimierte Varianten derselben API, die in MAUI zusammen mit jedem anderen Projekttyp in der Lösung verwendbar sind
  • Kommerzieller Support: SLA-gesicherter Support per E-Mail, Chat und Telefon; Die unbefristete Lizenzierung beginnt bei $999

Funktionsvergleich

Feature TesseractOcrMaui IronOCR
Plattform-Unterstützung .NET MAUI exklusiv Alle .NET -Plattformen
Unterstützung für gemeinsam genutzte Klassenbibliotheken Nein Ja
PDF-Eingabe Nein Ja (integriert)
Automatische Vorverarbeitung Nein Ja (40+ Filter)
Sprachdatenverwaltung Manuelle Dateibündelung NuGet Sprachpakete
Instandhalter Einzelner Gemeindeentwickler Iron Software (Firma)
Gesamtzahl der NuGet -Downloads ~33.900 Millionen
Lizenz Apache 2.0 (kostenlos) $999+ unbefristet

Detaillierter Funktionsvergleich

Feature TesseractOcrMaui IronOCR
Plattformabdeckung
.NET MAUI (iOS) Ja Ja (IronOCR.iOS)
.NET MAUI (Android) Ja Ja (IronOcr.Android)
.NET MAUI (Windows) Ja Ja
.NET MAUI (macOS) Nein Ja
ASP.NET Core Nein Ja
Konsolenanwendungen Nein Ja
WPF/WinForms Nein Ja
Azure Functions Nein Ja
Docker/Linux Nein Ja
AWS Lambda Nein Ja
Gemeinsam genutzte .NET Klassenbibliothek Nein Ja
Eingangsquellen
Bilddateien (JPEG, PNG, TIFF) Ja Ja
PDF-Dokumente Nein Ja
Passwortgeschützte PDFs Nein Ja
Bäche Nein Ja
Byte-Arrays Nein Ja
Vorverarbeitung
Entschiefen Nein Ja
Rauschunterdrückung Nein Ja
Kontrastverbesserung Nein Ja
Binärisierung Nein Ja
Auflösungsskalierung Nein Ja
Invertieren / Schärfen / Vergrößern Nein Ja
Ausgabe
Klartext Ja Ja
Durchsuchbares PDF Nein Ja
hOCR-Export Nein Ja
Wortkoordinaten Nein Ja
Konfidenzwerte Ja (pro Ergebnis) Ja (pro Wort)
Architektur
Thread-sicher Handbuch Eingebaut
Barcode-Lesung während der OCR Nein Ja
Mehrsprachige Simultanübertragung Nein (eine Initialisierung pro Aufruf) Ja
Unterstützung
Kommerzielles SLA Nein Ja
Garantie für Sicherheitspatches Community-abhängig Ja
Dokumentation Grundlegende README-Datei Mehr als 100 Seiten

Plattformabdeckung: Nur MAUI vs. Universelles .NET

Die grundlegende Frage bei der Bewertung von TesseractOcrMauiist, ob OCR jemals außerhalb eines MAUI-Projekts benötigt wird. Für die meisten Produktionsanwendungen lautet die Antwort ja.

TesseractOcrMaui-Ansatz

TesseractOcrMaui kann außerhalb eines MAUI-Hosts nicht kompiliert werden. Die ITesseract Schnittstelle wird aus dem MAUI DI-Container aufgelöst; Es gibt keine Factory, keinen statischen Einstiegspunkt und keinen eigenständigen Konstruktor. Folgende Muster wird als einziges unterstützt:

// MAUI-only: will not compile in ASP.NET Core, console, or class library
public class DocumentScanService
{
    private readonly ITesseract _tesseract;

    public DocumentScanService(ITesseract tesseract) // MAUI DI injection only
    {
        _tesseract = tesseract;
    }

    public async Task<string> ProcessAsync(string imagePath)
    {
        await _tesseract.InitAsync("eng");
        var result = await _tesseract.RecognizeTextAsync(imagePath);
        return result.RecognizedText ?? string.Empty;
    }
}
// MAUI-only: will not compile in ASP.NET Core, console, or class library
public class DocumentScanService
{
    private readonly ITesseract _tesseract;

    public DocumentScanService(ITesseract tesseract) // MAUI DI injection only
    {
        _tesseract = tesseract;
    }

    public async Task<string> ProcessAsync(string imagePath)
    {
        await _tesseract.InitAsync("eng");
        var result = await _tesseract.RecognizeTextAsync(imagePath);
        return result.RecognizedText ?? string.Empty;
    }
}
Imports System.Threading.Tasks

' MAUI-only: will not compile in ASP.NET Core, console, or class library
Public Class DocumentScanService
    Private ReadOnly _tesseract As ITesseract

    Public Sub New(tesseract As ITesseract) ' MAUI DI injection only
        _tesseract = tesseract
    End Sub

    Public Async Function ProcessAsync(imagePath As String) As Task(Of String)
        Await _tesseract.InitAsync("eng")
        Dim result = Await _tesseract.RecognizeTextAsync(imagePath)
        Return If(result.RecognizedText, String.Empty)
    End Function
End Class
$vbLabelText   $csharpLabel

Ein Team, das hochgeladene Dokumente in einem ASP.NET CoreAPI-Controller per OCR erfassen muss, kann diese Klasse nicht aufrufen. Sie fügen eine zweite OCR-Bibliothek hinzu – typischerweise einen anderen Tesseract-Wrapper oder eine Cloud-API – und duplizieren ihre Sprachkonfiguration, ihre Fehlerbehandlung und ihre Genauigkeitsoptimierung. Zwei Bibliotheken, zwei Wartungspfade, zwei Arten von Fehlern, die behoben werden müssen.

IronOCR-Ansatz

IronOCR unterliegt keinen Beschränkungen hinsichtlich des Projekttyps. Dieselbe Klasse lässt sich ohne Änderungen in einer MAUI-App, einem ASP.NET CoreController, einer Azure-Funktion und einer .NET Standard -Klassenbibliothek kompilieren:

// Works in every project type — MAUI, ASP.NET Core, console, Azure Functions, Docker
public class SharedOcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ExtractText(string imagePath)
    {
        using var input = new OcrInput(imagePath);
        return _ocr.Read(input).Text;
    }

    public string ExtractTextFromBytes(byte[] imageData)
    {
        using var input = new OcrInput(imageData);
        return _ocr.Read(input).Text;
    }
}
// Works in every project type — MAUI, ASP.NET Core, console, Azure Functions, Docker
public class SharedOcrService
{
    private readonly IronTesseract _ocr = new IronTesseract();

    public string ExtractText(string imagePath)
    {
        using var input = new OcrInput(imagePath);
        return _ocr.Read(input).Text;
    }

    public string ExtractTextFromBytes(byte[] imageData)
    {
        using var input = new OcrInput(imageData);
        return _ocr.Read(input).Text;
    }
}
Imports IronTesseract

Public Class SharedOcrService
    Private ReadOnly _ocr As New IronTesseract()

    Public Function ExtractText(imagePath As String) As String
        Using input As New OcrInput(imagePath)
            Return _ocr.Read(input).Text
        End Using
    End Function

    Public Function ExtractTextFromBytes(imageData As Byte()) As String
        Using input As New OcrInput(imageData)
            Return _ocr.Read(input).Text
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Platzieren Sie diese Klasse in einer .NET Standard 2.1 oder net8.0 Klassenbibliothek und referenzieren Sie sie gleichzeitig vom MAUI-Projekt, dem API-Projekt und dem Hintergrundarbeiter. Eine Implementierung, eine Wartungsoberfläche, ein Satz von Tests. Die IronTesseract-Einrichtungsanleitung erläutert die Konfigurationsoptionen, die für alle Ziele gleichermaßen gelten.

Für mobile spezifische Szenarien bieten IronOcr.Android und IronOcr.iOS plattformoptimierte native Binärdateien an, während sie die identische IronTesseract API bereitstellen — sodass die gemeinsame Klassenbibliothek unverändert auf mobilen Geräten funktioniert. Für Servereinsätze behandeln der Docker-Bereitstellungsleitfaden und der Linux-Bereitstellungsleitfaden die Containerkonfiguration. Es gibt außerdem ein spezielles MAUI OCR-Tutorial, das die Einrichtung speziell für Mobilgeräte zeigt.

Serverseitige Funktionalität

Serverseitige OCR ist das Szenario, das TesseractOcrMauikomplett zum Scheitern bringt. Für jede Anforderung, Dokumente auf dem Server zu verarbeiten – Batch-Jobs, API-Endpunkte, serverlose Funktionen – wird eine völlig andere Bibliothek benötigt.

TesseractOcrMaui-Ansatz

Bei TesseractOcrMauigibt es keinen serverseitigen Ansatz. Die Bibliothek zielt nur auf net8.0-ios, net8.0-android und net8.0-windows (MAUI). Ein ASP.NET CoreProjekt, das TesseractOcrMaui referenziert, wird nicht erfolgreich kompiliert. Dies ist kein Konfigurationsproblem; Das Paket enthält einfach keine Ziele, die Server-Laufzeitumgebungen laden können.

Die ProcessPdfAsync Methode in der eigenen Dokumentation der Bibliothek bestätigt die Lücke explizit:

// TesseractOcrMaui: PDF processing throws NotSupportedException
public async Task<List<string>> ProcessPdfAsync(string pdfPath)
{
    // Cannot process PDFs at all — requires manual conversion to images first
    // AND requires a separate PDF library you must add yourself
    throw new NotSupportedException(
        "TesseractOcrMaui does not support PDF processing. " +
        "You must manually convert PDF pages to images first.");
}
// TesseractOcrMaui: PDF processing throws NotSupportedException
public async Task<List<string>> ProcessPdfAsync(string pdfPath)
{
    // Cannot process PDFs at all — requires manual conversion to images first
    // AND requires a separate PDF library you must add yourself
    throw new NotSupportedException(
        "TesseractOcrMaui does not support PDF processing. " +
        "You must manually convert PDF pages to images first.");
}
Imports System
Imports System.Threading.Tasks

Public Class TesseractOcrMaui
    Public Async Function ProcessPdfAsync(pdfPath As String) As Task(Of List(Of String))
        ' Cannot process PDFs at all — requires manual conversion to images first
        ' AND requires a separate PDF library you must add yourself
        Throw New NotSupportedException("TesseractOcrMaui does not support PDF processing. " &
                                        "You must manually convert PDF pages to images first.")
    End Function
End Class
$vbLabelText   $csharpLabel

Selbst innerhalb einer MAUI-App können PDF-Dokumente nicht direkt übertragen werden. Jede Seite muss von einer zweiten Bibliothek in eine temporäre Bilddatei gerendert, im Gerätespeicher abgelegt, an RecognizeTextAsync übergeben und dann bereinigt werden. Bei der Verarbeitung von hunderten Dokumenten auf Serverlasten ist diese Architektur nicht praktikabel.

IronOCR-Ansatz

IronOCR verarbeitet serverseitige OCR mit derselben API wie auf Mobilgeräten. PDF-Eingabe erfolgt nativ – keine Zwischenkonvertierung von Bildern, keine temporären Dateien, keine zusätzliche Bibliothek:

// ASP.NET Corecontroller — handles PDF uploads directly
[HttpPost("ocr")]
public async Task<IActionResult> ProcessUpload(IFormFile file)
{
    var ocr = new IronTesseract();

    using var input = new OcrInput();

    if (file.ContentType == "application/pdf")
    {
        using var stream = file.OpenReadStream();
        input.LoadPdf(stream); // direct PDF stream — no temp files
    }
    else
    {
        using var stream = file.OpenReadStream();
        input.LoadImage(stream);
    }

    input.Deskew();   // handle scanned document skew
    input.DeNoise();  // mobile camera noise
    var result = ocr.Read(input);
    return Ok(new { text = result.Text, confidence = result.Confidence });
}
// ASP.NET Corecontroller — handles PDF uploads directly
[HttpPost("ocr")]
public async Task<IActionResult> ProcessUpload(IFormFile file)
{
    var ocr = new IronTesseract();

    using var input = new OcrInput();

    if (file.ContentType == "application/pdf")
    {
        using var stream = file.OpenReadStream();
        input.LoadPdf(stream); // direct PDF stream — no temp files
    }
    else
    {
        using var stream = file.OpenReadStream();
        input.LoadImage(stream);
    }

    input.Deskew();   // handle scanned document skew
    input.DeNoise();  // mobile camera noise
    var result = ocr.Read(input);
    return Ok(new { text = result.Text, confidence = result.Confidence });
}
Imports Microsoft.AspNetCore.Mvc
Imports IronOcr

<HttpPost("ocr")>
Public Async Function ProcessUpload(file As IFormFile) As Task(Of IActionResult)
    Dim ocr As New IronTesseract()

    Using input As New OcrInput()
        If file.ContentType = "application/pdf" Then
            Using stream = file.OpenReadStream()
                input.LoadPdf(stream) ' direct PDF stream — no temp files
            End Using
        Else
            Using stream = file.OpenReadStream()
                input.LoadImage(stream)
            End Using
        End If

        input.Deskew() ' handle scanned document skew
        input.DeNoise() ' mobile camera noise
        Dim result = ocr.Read(input)
        Return Ok(New With {Key .text = result.Text, Key .confidence = result.Confidence})
    End Using
End Function
$vbLabelText   $csharpLabel

Die gleiche IronTesseract Instanz, die die MAUI-App antreibt, betreibt auch diesen Endpunkt. Nach der Installation der Sprachpakete sind beide Zielplattformen abgedeckt. Für Azure Functions- oder AWS Lambda-Bereitstellungen ist die Konfiguration im Azure-Bereitstellungsleitfaden und im AWS-Bereitstellungsleitfaden dokumentiert. Die Anleitung zum PDF-Eingeben behandelt alle PDF-Lademuster, einschließlich Seitenbereiche, passwortgeschützte Dateien und Stream-Eingaben.

Wartungsrisiko durch einen einzelnen Entwickler

Mit rund 33.900 Downloads im Jahr 2026 nimmt TesseractOcrMauieine kleine Nische im .NET OCR-Ökosystem ein. Die geringe Anzahl an Downloads ist nicht nur ein Indikator für die Popularität – sie ist vielmehr ein Hinweis auf die Größe der verfügbaren Community für Fehlerberichte, Problemumgehungen, Stack Overflow-Antworten und beigesteuerte Korrekturen.

TesseractOcrMaui-Ansatz

Jeder Aspekt der Wartung von TesseractOcrMauihängt davon ab, dass Henri Vainio verfügbar und motiviert bleibt. Hinter dem Projekt steht kein kommerzielles Unternehmen, es gibt keine Service-Level-Vereinbarung (SLA), keinen garantierten Zeitplan für Sicherheitspatches und keinen Eskalationsweg über das Öffnen eines GitHub -Issues hinaus. Das Projekt läuft zwar, aber das strukturelle Risiko ist real.

Das trainierte Datenmanagementmodell verstärkt dieses Risiko auf operativer Ebene. Entwickler müssen Sprachdateien herunterladen, diese als <MauiAsset> Elemente deklarieren, plattformspezifische Pfadunterschiede zwischen iOS und Android zur Laufzeit auflösen und überprüfen, ob die Dateien beim Start existieren:

// Required startup validation — common crash source
public async Task<bool> ValidateTraineddataAsync()
{
    try
    {
        // Fails if eng.traineddata is missing, path-resolved incorrectly,
        // or mismatched with the Tesseract engine version
        await _tesseract.InitAsync("eng");
        return true;
    }
    catch (FileNotFoundException)
    {
        // Need to diagnose: missing file, wrong path, or wrong bundling config?
        Console.WriteLine("ERROR: eng.traineddata not found in bundle");
        return false;
    }
    catch (DllNotFoundException)
    {
        // Native library resolution failure — platform-specific debugging
        Console.WriteLine("Native Tesseract library missing");
        return false;
    }
}
// Required startup validation — common crash source
public async Task<bool> ValidateTraineddataAsync()
{
    try
    {
        // Fails if eng.traineddata is missing, path-resolved incorrectly,
        // or mismatched with the Tesseract engine version
        await _tesseract.InitAsync("eng");
        return true;
    }
    catch (FileNotFoundException)
    {
        // Need to diagnose: missing file, wrong path, or wrong bundling config?
        Console.WriteLine("ERROR: eng.traineddata not found in bundle");
        return false;
    }
    catch (DllNotFoundException)
    {
        // Native library resolution failure — platform-specific debugging
        Console.WriteLine("Native Tesseract library missing");
        return false;
    }
}
Imports System
Imports System.IO
Imports System.Threading.Tasks

Public Class Validator
    ' Required startup validation — common crash source
    Public Async Function ValidateTraineddataAsync() As Task(Of Boolean)
        Try
            ' Fails if eng.traineddata is missing, path-resolved incorrectly,
            ' or mismatched with the Tesseract engine version
            Await _tesseract.InitAsync("eng")
            Return True
        Catch ex As FileNotFoundException
            ' Need to diagnose: missing file, wrong path, or wrong bundling config?
            Console.WriteLine("ERROR: eng.traineddata not found in bundle")
            Return False
        Catch ex As DllNotFoundException
            ' Native library resolution failure — platform-specific debugging
            Console.WriteLine("Native Tesseract library missing")
            Return False
        End Try
    End Function

    Private _tesseract As Tesseract ' Assuming Tesseract is a defined class elsewhere
End Class
$vbLabelText   $csharpLabel

Wenn dies in der Produktion fehlschlägt – auf einer bestimmten Android-API-Ebene, nach einem iOS-Update oder nach der Einreichung eines App Stores – verläuft der Debugging-Pfad über GitHub Issues in einem Einzelentwicklerprojekt. Es gibt keine Support-E-Mail, keinen Chat-Kanal und keine telefonische Eskalationsmöglichkeit.

IronOCR-Ansatz

IronOCR wird von Iron Software entwickelt und gewartet, einem Unternehmen mit einem eigenen Entwicklerteam und kommerziellen Supportverträgen. Sprachdaten werden innerhalb von NuGet-Paketen ausgeliefert — dotnet add package IronOcr.Languages.French ist der gesamte Installationsprozess. Es gibt keine Dateien zu verwalten, keine Pfade zu konfigurieren und keine Bündelungsdeklarationen zu pflegen.

Die Fehlerfläche verkleinert sich entsprechend. Da keine Trainingsdaten verloren gehen können, verschwindet eine ganze Kategorie von Laufzeitfehlern. Das Initialisierungsmodell von IronOCR sieht einen einzelnen Lizenzschlüssel beim Start vor:

// Application startup — the entire configuration
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Then OCR works anywhere, any project type, any file format
var text = new IronTesseract().Read("document.jpg").Text;
// Application startup — the entire configuration
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY";

// Then OCR works anywhere, any project type, any file format
var text = new IronTesseract().Read("document.jpg").Text;
Imports IronOcr

' Application startup — the entire configuration
IronOcr.License.LicenseKey = "YOUR-LICENSE-KEY"

' Then OCR works anywhere, any project type, any file format
Dim text As String = New IronTesseract().Read("document.jpg").Text
$vbLabelText   $csharpLabel

Supportanfragen werden per E-Mail (während der Geschäftszeiten), Live-Chat und – für Enterprise – telefonisch bearbeitet. Die Lizenzierungsseite umfasst alle Stufen; Das Dokumentationsportal enthält über 100 Seiten mit Anleitungen. Für spezifische Fragen zu einzelnen Funktionen bietet das Tutorial-Portal durchgearbeitete Beispiele für gängige Szenarien.

API-Mapping-Referenz

TesseractOcrMaui IronOCR-Äquivalent
dotnet add package TesseractOcrMaui dotnet add package IronOcr
builder.Services.AddTesseractOcr() Nicht erforderlich – keine DI-Registrierung notwendig
ITesseract (injected) new IronTesseract() (direkte Instanziierung)
_tesseract.InitAsync("eng") ocr.Language = OcrLanguage.English; (oder Standard)
_tesseract.RecognizeTextAsync(imagePath) ocr.Read(imagePath)
result.RecognizedText result.Text
result.Success Ausnahmebasiert; keine Erfolgskennzeichnung erforderlich
result.Status Fehlermeldung
result.Confidence result.Confidence (auch pro Wort über result.Words)
<MauiAsset> Traineddata-Bundle dotnet add package IronOcr.Languages.French
TesseractOcrMaui.Results Namensraum IronOcr Namensraum
Keine PDF-Unterstützung input.LoadPdf(path)
Keine Vorverarbeitung input.Deskew(), input.DeNoise(), input.Binarize()
MediaPicker.CapturePhotoAsync() + RecognizeTextAsync() MediaPicker.CapturePhotoAsync() + ocr.Read(path)

Wenn Teams einen Wechsel von TesseractOcrMauizu IronOCR erwägen

Das Backend-Erweiterungsproblem

Ein Team, das sich auf mobile Endgeräte konzentriert, veröffentlicht eine MAUI-Dokumentenscanning-App, die TesseractOcrMauiverwendet. Die Funktion funktioniert. Dann fügt die Produkt-Roadmap die serverseitige Dokumentenverarbeitung hinzu: Hochgeladene PDFs müssen vor der Indizierung per OCR verarbeitet werden, ein Webportal benötigt die gleiche Extraktionslogik, ein nächtlicher Batch-Job muss Hunderte von gescannten Formularen verarbeiten. TesseractOcrMauikann aus keinem dieser Kontexte referenziert werden. Das Team steht nun vor der Wahl, entweder zwei parallele OCR-Codebasen zu pflegen – eine für MAUI, eine für den Server – oder alles auf eine Bibliothek umzustellen, die auf beiden Systemen funktioniert. Die Kosten für die Migration werden einmalig bezahlt; Die Kosten für die Aufrechterhaltung zweier Implementierungen summieren sich unbegrenzt.

PDF-Anforderungen auf Mobilgeräten

In realen mobilen Dokumenten-Workflows werden PDFs verwendet. Nutzer fotografieren Verträge, scannen Quittungen, die als PDF-Dateien eingehen, oder erhalten Ausweisdokumente im PDF-Format. TesseractOcrMauilöst NotSupportedException bei jeder PDF-Eingabe aus — der Quellcode dokumentiert dies explizit. Das Hinzufügen einer zweiten Bibliothek zum Rendern von PDF-Seiten in Bilder, die Verwaltung temporärer Dateien im Gerätecache und die korrekte Bereinigung erhöhen die Komplexität und Anfälligkeit einer mobilen App erheblich. Teams, die diese Einschränkung erst nach der Veröffentlichung der ersten MAUI-Version entdecken, müssen umfangreiche Überarbeitungen vornehmen, um die von ihren Nutzern tatsächlich gesendeten Dokumenttypen verarbeiten zu können.

Genauigkeit bei realen mobilen Aufnahmen

TesseractOcrMaui liefert eine präzise Tesseract-Analyse für jedes Bild, das von der Kamera kommt. Die Bilder von Handykameras sind selten optimal: leichte Verdrehung durch den Handwinkel, Sensorrauschen bei schlechten Lichtverhältnissen, unterschiedliche Auflösung je nach Gerätemodell. TesseractOcrMauibietet keine Vorverarbeitung – das manuelle Hinzufügen von Entzerrung, Rauschunterdrückung und Kontrastverbesserung erfordert die Einbindung von SkiaSharp oder ImageSharp, die Implementierung der Algorithmen, das Speichern temporärer Dateien und die Verwaltung der Pipeline. Die meisten Teams verzichten darauf. Das Ergebnis ist eine Genauigkeit von 40–60 % bei schlechten Lichtverhältnissen, im Vergleich zu 85–92 % bei Anwendung der Vorverarbeitung. Wenn es sich um Verträge, Quittungen oder Ausweisdokumente handelt, ist diese Lücke inakzeptabel.

Skalierung über die Bandbreite eines einzelnen Entwicklers hinaus

In Produktionsanwendungen treten gelegentlich Fehler auf, die eine Reaktion am selben Tag erfordern. Ein Plattform-Update führt zu Problemen mit der nativen Bibliotheksauflösung unter Android. Die Einreichung eines iOS App Stores schlägt aufgrund einer Änderung im App-Bundling fehl. Die Community von TesseractOcrMauimit 33.900 Downloads bietet nur eine begrenzte Abdeckung auf Stack Overflow und eine GitHub Problemwarteschlange eines einzelnen Maintainers. Teams mit Produktions-SLA-Verpflichtungen – insbesondere in regulierten Branchen – benötigen einen definierten Eskalationsweg. Freiwilligenbasierte Unterstützung bietet keine.

Code-Sharing in einem gemischten Portfolio

Enterprise Entwicklungsteams pflegen selten nur eine einzige Anwendung. Eine Suite mit einer MAUI-Mobil-App, einem ASP.NET Core-Webportal, einem Konsolen-Batchprozessor und einer Azure Functions-Pipeline kann die OCR-Logik nicht gemeinsam nutzen, wenn TesseractOcrMauials mobile Lösung verwendet wird. Jedes Projekt erhält seine eigene OCR-Integration. Wenn sich die Genauigkeitsanforderungen ändern – z. B. durch Hinzufügen einer neuen Sprache oder Anpassen der Vorverarbeitung für einen neuen Dokumenttyp –, muss die Änderung in jeder Integration separat vorgenommen werden. IronOCRs universelle .NET-Ausrichtung ermöglicht eine einzelne SharedOcrService Klasse in einer netstandard Bibliothek, die von allen Projekten gleichzeitig referenziert wird.

Gemeinsame Überlegungen zur Migration

Ersetzen von ITesseract durch IronTesseract

TesseractOcrMaui's ITesseract wird durch den MAUI DI-Container aufgelöst und muss injiziert werden. IronOCRs IronTesseract ist eine einfach instanziierbare Klasse. Entfernen Sie den Konstruktorparameter und den InitAsync Aufruf; ersetzen Sie RecognizeTextAsync durch Read:

// Before — MAUI DI required
public class OcrService
{
    private readonly ITesseract _tesseract;
    public OcrService(ITesseract tesseract) { _tesseract = tesseract; }

    public async Task<string> ProcessAsync(string imagePath)
    {
        await _tesseract.InitAsync("eng");
        var result = await _tesseract.RecognizeTextAsync(imagePath);
        return result.Success ? result.RecognizedText : string.Empty;
    }
}

// After — works in any project type
public class OcrService
{
    public string Process(string imagePath)
    {
        var ocr = new IronTesseract();
        using var input = new OcrInput(imagePath);
        return ocr.Read(input).Text;
    }
}
// Before — MAUI DI required
public class OcrService
{
    private readonly ITesseract _tesseract;
    public OcrService(ITesseract tesseract) { _tesseract = tesseract; }

    public async Task<string> ProcessAsync(string imagePath)
    {
        await _tesseract.InitAsync("eng");
        var result = await _tesseract.RecognizeTextAsync(imagePath);
        return result.Success ? result.RecognizedText : string.Empty;
    }
}

// After — works in any project type
public class OcrService
{
    public string Process(string imagePath)
    {
        var ocr = new IronTesseract();
        using var input = new OcrInput(imagePath);
        return ocr.Read(input).Text;
    }
}
Imports System.Threading.Tasks

' Before — MAUI DI required
Public Class OcrService
    Private ReadOnly _tesseract As ITesseract

    Public Sub New(tesseract As ITesseract)
        _tesseract = tesseract
    End Sub

    Public Async Function ProcessAsync(imagePath As String) As Task(Of String)
        Await _tesseract.InitAsync("eng")
        Dim result = Await _tesseract.RecognizeTextAsync(imagePath)
        Return If(result.Success, result.RecognizedText, String.Empty)
    End Function
End Class

' After — works in any project type
Public Class OcrService
    Public Function Process(imagePath As String) As String
        Dim ocr = New IronTesseract()
        Using input = New OcrInput(imagePath)
            Return ocr.Read(input).Text
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Das asynchrone Muster von TesseractOcrMauikann verwendet werden, um Task.Run(() => ocr.Read(input)) beizubehalten, falls nötig, für UI-Thread-Bedenken in MAUI, aber der synchrone Pfad ist sauber und ausreichend für Serverszenarien. Das Bild-Eingabe-How-To dokumentiert alle OcrInput Ladevarianten.

Entfernung der Traineddata-Infrastruktur

TesseractOcrMaui erfordert einen Resources/Raw/tessdata/ Ordner, heruntergeladene .traineddata Dateien, <MauiAsset> Projektdatei-Deklarationen, plattform-spezifischen Pfadauflösungscode und einen Startüberprüfungs-Check. All dies wird bei der Migration zu IronOCR gelöscht. Sprachpakete werden über NuGet installiert:

dotnet remove package TesseractOcrMaui

dotnet add package IronOcr
dotnet add package IronOcr.Android   # for MAUI Android target
dotnet add package IronOcr.iOS       # for MAUI iOS target
dotnet add package IronOcr.Languages.French  # if French was needed
dotnet remove package TesseractOcrMaui

dotnet add package IronOcr
dotnet add package IronOcr.Android   # for MAUI Android target
dotnet add package IronOcr.iOS       # for MAUI iOS target
dotnet add package IronOcr.Languages.French  # if French was needed
SHELL

Löschen Sie den Resources/Raw/tessdata/ Ordner und entfernen Sie die <MauiAsset> Einträge aus der Projektdatei. Entfernen Sie builder.Services.AddTesseractOcr() von MauiProgram.cs. Die Validierungsklasse für den Startvorgang, die nach fehlenden Trainingsdatendateien sucht, hat in IronOCR kein Äquivalent, da es nichts gibt, was fehlen könnte. Die Einrichtungsanleitung von IronTesseract beschreibt den entsprechenden Initialisierungsschritt.

Hinzufügen von Vorverarbeitung für Genauigkeitsparität

TesseractOcrMaui wendet keine Vorverarbeitung an. Wenn die bestehende App auf die Rohgenauigkeit von Tesseract optimiert wurde, verbessert die Hinzunahme der IronOCR Vorverarbeitung die Ergebnisse bei Bildern von geringer Qualität. Speziell für die Eingabe mit mobilen Kameras deckt eine Drei-Filter-Pipeline die häufigsten Fehlermodi ab:

using var input = new OcrInput(imagePath);
input.Deskew();            // camera angle correction
input.DeNoise();           // sensor noise from low light
input.EnhanceResolution(300); // normalize DPI across device models

var result = new IronTesseract().Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
using var input = new OcrInput(imagePath);
input.Deskew();            // camera angle correction
input.DeNoise();           // sensor noise from low light
input.EnhanceResolution(300); // normalize DPI across device models

var result = new IronTesseract().Read(input);
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr

Using input As New OcrInput(imagePath)
    input.Deskew()            ' camera angle correction
    input.DeNoise()           ' sensor noise from low light
    input.EnhanceResolution(300) ' normalize DPI across device models

    Dim result = New IronTesseract().Read(input)
    Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
$vbLabelText   $csharpLabel

Die Anleitungen zur Bildqualitätskorrektur und zur Bildorientierungskorrektur erklären jeden Filter im Detail. Das Beispiel eines Scans mit niedriger Qualität zeigt einen kompletten Workflow für schwierige Dokumente aus der Praxis.

Verschieben der OCR-Logik in eine gemeinsam genutzte Bibliothek

Sobald die MAUI-spezifische ITesseract Abhängigkeit entfernt ist, wird die OCR-Dienstklasse portabel. Erstellen Sie eine neue netstandard2.1 oder net8.0 Klassenbibliothek, verschieben Sie den Dienst dorthin und referenzieren Sie ihn vom MAUI-Projekt und jedem serverseitigen Projekt in der Lösung. Dies ist der architektonische Schritt, den TesseractOcrMauistrukturell unmöglich macht und IronOCR trivialisiert. Die Übersicht der .NET OCR-Bibliothek behandelt auch Aspekte der Zielgruppenbestimmung.

Zusätzliche Funktionen von IronOCR

Über die oben genannten Funktionen hinaus bietet IronOCR weitere Features, die in früheren Abschnitten nicht behandelt wurden:

  • Asynchrone OCR : Native asynchrone Unterstützung für Serverszenarien mit hohem Durchsatz, bei denen die Ergebnisse in parallele Pipelines eingespeist werden
  • Regionenbasierte OCR: new CropRectangle(x, y, width, height) beschränkt die Verarbeitung auf einen definierten Bereich, reduziert Störungen und verbessert die Geschwindigkeit bei strukturierten Formularen
  • Verarbeitung gescannter Dokumente : Spezielle Bearbeitung mehrseitiger gescannter Dokumente, einschließlich automatischer Rotationserkennung und seitlicher Entzerrung.
  • Lesen von Reisepässen und Personalausweisen : Speziell entwickelte Extraktion maschinenlesbarer Bereiche auf Reisedokumenten
  • Tabellenextraktion : Extrahiert tabellarische Daten aus gescannten Dokumenten unter Berücksichtigung der Zeilen- und Spaltenstruktur.

.NET-Kompatibilität und Zukunftsfähigkeit

IronOCR zielt auf netstandard2.0, net6.0, net8.0 ab und wird gegen aktive .NET-Versionen gewartet. Die IronOcr.Android und IronOcr.iOS Pakete verfolgen die MAUI-Veröffentlichungstaktung. Iron Software veröffentlicht Updates für jede neue Hauptversion von .NET ; Die Bibliothek ist aktuell mit .NET 9 kompatibel und wird .NET 10 unterstützen, sobald dieses veröffentlicht wird. TesseractOcrMauizielt auf net8.0-* MAUI-Frameworks ab und hat keine erklärte Roadmap über die Diskretion des einzelnen Wartungsentwicklers hinaus — eine Abhängigkeit von der fortgesetzten Verfügbarkeit eines Entwicklers schafft ein Vorwärtskompatibilitätsrisiko, das sich verschlechtert, je mehr .NET-Versionen hinzukommen.

Abschluss

TesseractOcrMaui löst ein reales Problem für einen begrenzten Anwendungsfall: eine reine MAUI-Anwendung ohne Backend-Komponenten, mit einem Budget von null, einfachen Bildeingaben und einem Team, das bereit ist, den Aufwand für die Verwaltung der Trainingsdaten und das Wartungsrisiko eines einzelnen Entwicklers zu tragen. Für diese spezielle Kombination bietet es kostenlosen Zugriff auf Tesseract auf Mobilgeräten, ohne dass plattformspezifischer nativer Code erforderlich ist.

Die MAUI-Abhängigkeit ist keine Nuance – sie ist die entscheidende Einschränkung. Jede Produktbewertung im praktischen Einsatz muss die Frage beantworten: Wird OCR jemals außerhalb der MAUI-App benötigt? Lautet die Antwort Ja, scheidet TesseractOcrMauibereits vor Beginn eines Funktionsvergleichs aus. Teams, die eine Backend-API, ein Webportal, eine Azure-Funktion oder einen Batchprozessor hinzufügen, dürfen keine einzige Zeile TesseractOcrMaui-Code mit diesen Projekten teilen. Sie entwickeln zwei OCR-Integrationen und pflegen beide auf unbestimmte Zeit.

IronOCR beseitigt die Plattformgrenze. Die gleiche IronTesseract Klasse, die gleiche OcrInput Vorverarbeitungspipeline und die gleiche Sprachkonfiguration funktionieren identisch in einer MAUI-Mobile-App und einer ASP.NET Core-API, die auf Docker bereitgestellt wird. Eine gemeinsam genutzte Klassenbibliothek trägt die OCR-Logik in der gesamten Lösung. Wenn das Produkt wächst — und Produkte wachsen — wächst die OCR-Schicht mit, ohne Umschreiben. Die $999 unbefristete Lizenz kauft diese architektonische Freiheit neben eingebautem PDF-Support, Vorverarbeitung, die mit realen mobilen Bildern umgeht, und kommerziellem Support, wenn Produktionsprobleme auftreten.

Die Diskrepanz bei den Downloadzahlen – etwa 33.900 für TesseractOcrMauigegenüber Millionen für IronOCR– spiegelt den Unterschied zwischen einem experimentellen Nischenwerkzeug und einer Bibliothek wider, die Teams in großem Umfang produktiv einsetzen. Für Machbarkeitsstudien in einem reinen MAUI-Projekt ohne serverseitige Anforderungen ist TesseractOcrMauiein guter kostenloser Ausgangspunkt. Bei Produktionsanwendungen werden die Kosten für die Umgehung der damit verbundenen architektonischen Einschränkung letztendlich höher sein als die Kosten für den Erwerb der IronOCR-Lizenz.

Hinweis:Tesseract ist eine eingetragene Marke des jeweiligen Inhabers. Diese Website steht in keiner Verbindung zu Google und wird nicht von Google unterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.

Häufig gestellte Fragen

Was ist Tesseract.MAUI?

Tesseract.MAUI ist eine OCR-Lösung, die von Entwicklern und Unternehmen zur Extraktion von Text aus Bildern und Dokumenten verwendet wird. Sie ist eine von mehreren OCR-Optionen, die neben IronOCR for .NET Application Development evaluiert wurden.

Wie schneidet IronOCR im Vergleich zu Tesseract.MAUI for .NET-Entwicklern ab?

IronOCR ist eine NuGet-native OCR-Bibliothek für .NET, die IronTesseract als Kern-Engine verwendet. Im Vergleich zu Tesseract.MAUI bietet sie eine einfachere Bereitstellung (keine SDK-Installationsprogramme), Pauschalpreise und eine saubere C#-API ohne COM-Interop oder Cloud-Abhängigkeiten.

Ist IronOCR einfacher einzurichten als Tesseract.MAUI?

IronOCR wird über ein einziges NuGet-Paket installiert. Es gibt keine SDK-Installationsprogramme, keine Lizenzdateien, die kopiert werden müssen, keine COM-Komponenten, die registriert werden müssen, und keine separaten Laufzeit-Binärdateien, die verwaltet werden müssen. Die gesamte OCR-Engine ist in diesem Paket enthalten.

Welche Genauigkeitsunterschiede bestehen zwischen Tesseract.MAUI und IronOCR?

IronOCR erreicht eine hohe Erkennungsgenauigkeit für Standardgeschäftsdokumente, Rechnungen, Quittungen und gescannte Formulare. Bei stark degradierten Dokumenten oder ungewöhnlichen Skripten variiert die Genauigkeit je nach Qualität der Quelle. IronOCR enthält Bildvorverarbeitungsfilter zur Verbesserung der Erkennung bei Eingaben von geringer Qualität.

Unterstützt IronOCR die PDF-Textextraktion?

Ja, IronOCR extrahiert Text sowohl aus nativen PDF-Dateien als auch aus gescannten PDF-Bildern in einem einzigen Aufruf. Es unterstützt auch mehrseitige TIFF-Dateien, Bilder und Streams. Bei gescannten PDFs wird die OCR seitenweise mit seitenweisen Ergebnisobjekten angewendet.

Wie sieht es mit der Lizenzierung von Tesseract.MAUI im Vergleich zu IronOCR aus?

IronOCR verwendet eine unbefristete Pauschallizenz, bei der keine Gebühren pro Seite oder pro Scan anfallen. Unternehmen, die große Dokumentenmengen verarbeiten, zahlen unabhängig vom Volumen die gleichen Lizenzkosten. Einzelheiten und Volumenpreise finden Sie auf der IronOCR-Lizenzierungsseite.

Welche Sprachen unterstützt IronOCR?

IronOCR unterstützt 127 Sprachen über separate NuGet-Sprachpakete. Das Hinzufügen einer Sprache erfordert einen einzigen Befehl 'dotnet add package IronOcr.Languages.{Language}'. Es ist keine manuelle Dateiablage oder Pfadkonfiguration erforderlich.

Wie installiere ich IronOCR in einem .NET -Projekt?

Installation über NuGet: 'Install-Package IronOcr' in der Paketmanager-Konsole oder 'dotnet add package IronOcr' in der CLI. Zusätzliche Sprachpakete werden auf die gleiche Weise installiert. Es ist kein natives SDK-Installationsprogramm erforderlich.

Ist IronOCR im Gegensatz zu Tesseract.MAUI für Docker und containerisierte Implementierungen geeignet?

Ja, IronOCR funktioniert in Docker-Containern über sein NuGet-Paket. Der Lizenzschlüssel wird über eine Umgebungsvariable festgelegt. Für die OCR-Engine selbst sind keine Lizenzdateien, SDK-Pfade oder Volume-Mounts erforderlich.

Kann ich IronOCR im Vergleich zu Tesseract.MAUI vor dem Kauf ausprobieren?

Ja. Der IronOCR-Testmodus verarbeitet Dokumente und liefert OCR-Ergebnisse mit einem Wasserzeichen als Overlay auf der Ausgabe. Sie können die Genauigkeit an Ihren eigenen Dokumenten überprüfen, bevor Sie eine Lizenz erwerben.

Unterstützt IronOCR neben der Textextraktion auch das Lesen von Barcodes?

IronOCR konzentriert sich auf die Textextraktion und OCR. Für das Lesen von Barcodes bietet Iron Software IronBarcode als Begleitbibliothek an. Beide sind einzeln oder als Teil des Iron Suite-Pakets erhältlich.

Ist es einfach, von Tesseract.MAUI zu IronOCR zu migrieren?

Die Migration von Tesseract.MAUI zu IronOCR umfasst in der Regel das Ersetzen von Initialisierungssequenzen durch IronTesseract-Instanziierung, das Entfernen des COM-Lifecycle-Managements und die Aktualisierung von API-Aufrufen. Die meisten Migrationen reduzieren die Komplexität des Codes erheblich.

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