Passer au contenu du pied de page
UTILISATION D'IRONOCR

Kit de développement logiciel (SDK) OCR .NET : une bibliothèque de reconnaissance de texte pour C#

Un kit de développement logiciel OCR .NET OCR ) permet aux applications C# et .NET d'extraire par programmation du texte à partir d'images, de PDF numérisés et d'autres formats de documents. IronOCR est un kit de développement logiciel (SDK) OCR .NET prêt pour la production qui intègre un moteur Tesseract 5 optimisé avec des filtres de prétraitement, la lecture de codes-barres, la sortie PDF consultable et la prise en charge de plus de 125 langues – le tout accessible via une API C# propre fonctionnant sous Windows, Linux, macOS et sur les plateformes cloud.

Pourquoi IronOCR est-il le kit de développement logiciel (SDK) OCR .NET idéal pour votre projet ?

Créer un système de reconnaissance de texte à partir de zéro implique de gérer des chaînes de prétraitement d'images, des fichiers de données linguistiques, des modèles de traitement multithread et l'analyse syntaxique des résultats — des mois de travail avant même d'extraire votre premier mot. IronOCR élimine ces frais généraux en fournissant un moteur éprouvé que votre équipe peut intégrer à un projet en quelques minutes.

Principales fonctionnalités qui le distinguent des liaisons Tesseract brutes :

  • Reconnaissance de plus de 125 langues et systèmes d'écriture, y compris le texte manuscrit
  • Filtres intégrés : suppression du bruit, redressement de la distorsion, binarisation, amélioration de la résolution et correction du contraste
  • Détection des codes-barres et des codes QR lors d'une même passe de lecture
  • Génération de PDF consultables avec des calques de texte invisibles pour les flux de travail d'archivage
  • Traitement par lots asynchrone et parallèle pour les pipelines à haut débit
  • OCR zonal pour cibler des régions spécifiques de la page et réduire le temps de traitement
  • Prise en charge multiplateforme sur Windows, Linux, macOS, Docker et Azure

Selon la documentation du projet Tesseract OCR , Tesseract brut nécessite une configuration manuelle pour les packs de langue, les paramètres DPI et les modes de sortie. IronOCR gère tout cela automatiquement, vous permettant de vous concentrer sur la signification du texte extrait plutôt que sur la manière de l'extraire.

Comment IronOCR se compare-t-il à Tesseract brut ?

L'utilisation de Raw Tesseract via un wrapper P/Invoke ou le package NuGet Tesseract vous laisse responsable de : télécharger et placer les fichiers de langue tessdata, sélectionner le mode de segmentation de page approprié, gérer vous-même le fractionnement des fichiers TIFF et PDF multipages et configurer le threading si vous souhaitez un traitement parallèle. Aucun de ces détails n'est spécifique à votre problème d'entreprise.

IronOCR enveloppe toute cette tuyauterie. Vous bénéficiez d'une interface API typée, d'une gestion automatique des données tessdata, d'une fonction intégrée de division et de recombinaison de PDF et d'un moteur thread-safe réutilisable pour plusieurs requêtes. En contrepartie, une licence payante est requise pour une utilisation en production ; la page relative aux licences affiche les différents niveaux de prix actuels, y compris une licence de développement gratuite.

Pour les équipes qui ont besoin de dépendances exclusivement open source, l'utilisation de Tesseract brut Plus à un prétraitement personnalisé constitue une solution viable. Pour les équipes qui ont besoin de déployer rapidement une solution OCR fiable, IronOCR réduit la surface d'intégration à quelques lignes de C#.

Comment installer le SDK IronOCR .NET ?

L'installation s'effectue via NuGet, le gestionnaire de packages standard .NET . Exécutez la commande suivante dans votre répertoire de projet :

Install-Package IronOcr

Pour les utilisateurs de Visual Studio, recherchez IronOcr dans l'interface graphique du gestionnaire de packages NuGet et installez-le à partir de là. Pour connaître toutes les options d'installation, y compris les références DLL manuelles, consultez la documentation d'installation IronOCR .

Après l'installation, ajoutez la clé de licence au démarrage de votre application ou appsettings.json. Vous pouvez démarrer un essai gratuit pour obtenir une clé d'essai qui débloque toutes les fonctionnalités pendant la période d'évaluation.

Vérification de l'installation

Un rapide contrôle de bon fonctionnement après l'installation confirme que tout est correctement câblé. Créer une application console ciblant .NET 10 :

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

Si du texte apparaît dans la console, le SDK est installé et la clé de licence est valide. Vous êtes prêt à mettre en place des flux de production.

Comment extraire du texte à partir d'images et de fichiers PDF en C# ?

Le modèle d'extraction de base est cohérent pour tous les types d'entrée. Vous créez une instance IronTesseract, chargez le contenu dans un objet OcrInput et appelez Read(). IronOCR détecte automatiquement le format de fichier à partir de son extension ; ainsi, le même chemin de code gère les formats JPEG, PNG, TIFF, BMP et PDF multipages.

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

Point d'entrée principal pour exercer le service :

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

L'instance IronTesseract est sûre pour les threads et conçue pour la réutilisation. Créez-le une seule fois au démarrage de l'application (via l'injection de dépendances dans ASP.NET Core, par exemple) plutôt que de l'instancier à chaque requête.

Pour les PDF multipages, result.Pages vous donne accès page par page au texte, au score de confiance et aux cadres de délimitation. Consultez le guide OCR PDF multipage pour plus de détails sur l'itération page par page.

Comment améliorer la précision de la reconnaissance optique de caractères (OCR) grâce aux filtres de prétraitement ?

Les numérisations brutes provenant de scanners à plat, d'appareils photo de smartphones ou de télécopieurs souffrent fréquemment de bruit, de rotation, d'un faible contraste et d'une résolution insuffisante. Le pipeline de correction de la qualité d'image d'IronOCR traite chaque problème grâce à des filtres ciblés que vous enchaînez avant l'appel de lecture.

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

Guide de sélection des filtres :

  • DeNoise() -- à utiliser pour les numérisations présentant un fort pointillage ou des artefacts de compression
  • Deskew() -- à utiliser lorsque les documents sont photographiés en biais ; voir la détection de rotation de page pour la détection automatique
  • Scale() -- à utiliser pour les petits caractères ou une entrée inférieure à 150 DPI ; Les valeurs de 150 à 200 donnent généralement les meilleurs résultats.
  • Binarize() -- à utiliser pour les arrière-plans colorés ou dégradés ; convertit l'image en noir et blanc strict
  • EnhanceResolution() -- à utiliser pour un texte flou ou à faible contraste ; L'objectif est de 300 DPI, considéré comme le point d'équilibre optimal du Tesseract.

Les recherches publiées dans l' International Journal on Document Analysis and Recognition montrent systématiquement que la binarisation et le redressement sont les deux étapes de prétraitement ayant le plus grand impact sur l'amélioration des taux de reconnaissance de caractères. Appliquez les deux comme base pour tout pipeline de production.

Filtres de prétraitement IronOCR et leurs principaux cas d'utilisation
Filtre Problème résolu Quand postuler
`DeNoise()` Artefacts de numérisation, bruit de speckle Tout scanner à plat ou fax
`Deskew()` Inclinaison et rotation de la page Documents photographiés ou mal alignés
`Scale()` Texte de petite taille ou faible résolution Entrée inférieure à 150 DPI
`Binarize()` Fonds colorés, dégradés Papier de couleur ou formulaires filigranés
`EnhanceResolution()` Flou et faible contraste Captures d'écran et fichiers JPEG compressés

Comment construire un pipeline de traitement par lots pour la production ?

L'extraction d'un seul document est simple, mais les scénarios de production impliquent des centaines, voire des milliers de fichiers arrivant dans des files d'attente, des dossiers partagés ou un stockage cloud. L'API asynchrone et le moteur thread-safe d'IronOCR le rendent adapté aux charges de travail parallèles.

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

Le condensateur MaxDegreeOfParallelism empêche l'épuisement de la mémoire lorsque les fichiers sont volumineux. La valeur 4 fonctionne bien sur un serveur à quatre cœurs ; N'augmentez cette valeur qu'après avoir analysé l'utilisation de la mémoire. Pour les déploiements Azure Functions ou AWS Lambda , définissez la concurrence à 1 par instance de fonction et effectuez plutôt une mise à l'échelle horizontale.

CreateSearchablePdf génère un PDF où l'image originale est préservée comme une couche visible et le texte reconnu est intégré de manière invisible en dessous. Cela permet la recherche en texte intégral dans les visionneuses PDF et l'indexation par les moteurs de recherche — une exigence courante dans les systèmes de gestion de documents .

Suivi des scores de confiance en production

Chaque OcrResult expose une propriété Confidence (0-100) qui reflète le degré de certitude du moteur concernant le texte reconnu. Le suivi de cette métrique dans votre infrastructure de journalisation vous permet de recevoir un signal d'alerte précoce en cas de dégradation de la qualité des documents, par exemple si l'étalonnage d'un scanner dérive ou si un nouveau fournisseur de documents envoie des numérisations à une résolution inférieure à celle attendue.

Une stratégie de seuil pratique : enregistrer un avertissement lorsque le niveau de confiance est inférieur à 80, déclencher une nouvelle tentative de prétraitement lorsque le niveau est inférieur à 70 et signaler les documents pour une vérification humaine lorsque le niveau est inférieur à 60. Cette approche par paliers permet de détecter les problèmes de qualité avant qu'ils ne provoquent une corruption silencieuse des données dans les systèmes en aval.

La documentation de journalisation Microsoft .NET couvre les modèles ILogger utilisés dans le service par lots ci-dessus pour les équipes intégrant le conteneur DI intégré d' ASP.NET Core.

Comment extraire des données structurées à partir de documents numérisés ?

L'extraction de texte est la première étape. La deuxième consiste à analyser ce texte et à le convertir en champs exploitables par votre application. Ce modèle combine la passe de lecture d'IronOCR avec Regex de .NET pour extraire des données structurées des factures, des formulaires et des rapports.

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

Cette approche se combine bien avec la reconnaissance optique de caractères (OCR) zonale lorsque vous savez exactement où chaque champ apparaît sur un formulaire. En fournissant un rectangle de délimitation, vous évitez la reconnaissance de la page entière et ciblez uniquement la région contenant le numéro de facture ou le total, ce qui réduit considérablement le temps de traitement des documents à mise en page fixe.

Pour des scénarios d'extraction plus avancés, notamment pour les tableaux et les formulaires structurés, consultez les exemples d'extraction de données IronOCR sur le site du produit.

Comment gérer la reconnaissance optique de caractères multilingue en .NET?

De nombreuses organisations traitent des documents dans plusieurs langues : formulaires d'import/export, contrats internationaux ou documents clients multilingues. IronOCR gère cela en vous permettant de configurer le pack de langue avant l'appel de lecture.

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

La page d'assistance linguistique IronOCR répertorie plus de 125 packs de langue disponibles avec les instructions de téléchargement. Les modules linguistiques sont distribués sous forme de packages NuGet (par exemple, IronOcr.Languages.German) afin qu'ils s'intègrent au même flux de travail de gestion des packages que vous utilisez déjà.

Pour les jeux de caractères autres que l'alphabet latin (arabe, chinois, japonais, coréen), IronOCR propose des modèles optimisés qui gèrent le sens d'écriture de droite à gauche et les écritures idéographiques. Consultez le guide OCR CJK pour plus de détails sur la configuration.

Quelles sont vos prochaines étapes ?

Vous disposez désormais des modèles nécessaires pour ajouter une fonction OCR de qualité professionnelle à n'importe quelle application .NET 10 : extraction de texte de base, prétraitement pour les numérisations difficiles, traitement par lots asynchrone, analyse de données structurées et prise en charge multilingue.

À partir d'ici, explorez ces domaines en fonction des besoins de votre projet :

Commencez par la licence d'essai gratuite pour évaluer l'ensemble des fonctionnalités sur vos propres documents avant de vous engager sur un abonnement.

NuGet Installer avec NuGet

PM >  Install-Package IronOcr

Consultez IronOCR sur NuGet pour une installation rapide. Avec plus de 10 millions de téléchargements, il transforme le développement PDF avec C#. Vous pouvez également télécharger le DLL ou l'installateur Windows.

Questions Fréquemment Posées

Qu'est-ce que le SDK OCR .NET ?

Le SDK OCR .NET de IronOCR est une bibliothèque conçue pour intégrer des capacités de reconnaissance optique de caractères dans les applications C#, permettant aux développeurs d'extraire du texte à partir d'images, de PDF et de documents numérisés.

Quelles sont les principales fonctionnalités du SDK .NET de IronOCR ?

Le SDK .NET de IronOCR offre une API simple, un support pour plusieurs langues, une compatibilité multiplateforme, et des fonctionnalités avancées pour gérer divers formats de fichiers et des scans de faible qualité.

Comment IronOCR gère-t-il différentes langues ?

Le SDK .NET de IronOCR prend en charge plusieurs langues, permettant l'extraction et la reconnaissance de texte à partir de documents dans diverses langues sans nécessiter de configurations supplémentaires.

IronOCR peut-il traiter des scans de faible qualité ?

Oui, IronOCR est conçu pour gérer efficacement les scans de faible qualité, en employant des algorithmes avancés pour améliorer la précision de la reconnaissance de texte même dans des scénarios difficiles.

Le SDK .NET de IronOCR est-il multiplateforme ?

Le SDK .NET de IronOCR est multiplateforme, ce qui signifie qu'il peut être utilisé sur différents systèmes d'exploitation, le rendant polyvalent pour divers environnements de développement.

Quels formats de fichiers IronOCR supporte-t-il ?

IronOCR prend en charge un large éventail de formats de fichiers, y compris les images, les PDF, et les documents numérisés, offrant une flexibilité pour les tâches de reconnaissance de texte à travers différents médias.

Comment les développeurs peuvent-ils intégrer IronOCR dans leurs projets ?

Les développeurs peuvent intégrer IronOCR à leurs projets C# grâce à son API typée, ce qui simplifie l'ajout de fonctionnalités OCR aux applications.

Quels sont certains cas d'utilisation pour IronOCR ?

IronOCR peut être utilisé dans les systèmes de gestion de documents, la saisie de données automatisée, la numérisation de contenu, et toute application nécessitant l'extraction de texte à partir d'images ou de PDF.

Kannaopat Udonpant
Ingénieur logiciel
Avant de devenir ingénieur logiciel, Kannapat a obtenu un doctorat en ressources environnementales à l'université d'Hokkaido au Japon. Pendant qu'il poursuivait son diplôme, Kannapat est également devenu membre du laboratoire de robotique de véhicules, qui fait partie du département de bioproduction. En 2022, il a utilisé ses compé...
Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi