Comment effectuer une reconnaissance optique de caractères (OCR) sur iOS avec .NET MAUI

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

.NET MAUI (Multi-platform App UI) est une évolution du framework Xamarin.Forms, conçu pour créer des applications multiplateformes pour Android, iOS, macOS et Windows en utilisant .NET. MAUI vise à simplifier le processus de création d'interfaces utilisateur natives pouvant fonctionner sur plusieurs plateformes.

Le package IronOcr.iOS apporte la prise en charge de la reconnaissance optique de caractères (OCR) à iOS !

Package IronOCR pour iOS

Le package IronOcr.iOS active les fonctionnalités OCR sur les appareils iOS via des projets multiplateformes .NET. Le package IronOCR de base n'est pas nécessaire.

Installer le package IronOcr.iOS
Bibliothèque C# NuGet pour PDF

Installer avec NuGet

Installer le package IronOcr.iOS

Créer un projet .NET MAUI

Dans la section Multiplattform, sélectionnez .NET MAUI App et continuez.

! Créer un projet d'application .NET MAUI

Inclure la bibliothèque IronOCR.iOS

La bibliothèque peut être ajoutée de différentes manières. La plus simple est peut-être d'utiliser NuGet.

  1. Dans Visual Studio, cliquez avec le bouton droit sur "Dépendances > NuGet" et sélectionnez "Gérer les packages NuGet...".
  2. Sélectionnez l'onglet " Parcourir " et recherchez " IronOcr.iOS ".
  3. Sélectionnez le package " IronOcr.iOS " et cliquez sur " Ajouter un package ".

Téléchargez le package IronOCR.iOS .

Pour éviter tout problème avec d'autres plateformes, modifiez le fichier csproj afin qu'il n'inclue le package que lors du ciblage de la plateforme iOS. Pour ce faire :

  1. Faites un clic droit sur le fichier *.csproj de votre projet et sélectionnez " Modifier le fichier projet ".
  2. Créez un nouvel élément ItemGroup comme suit :

    <ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
        <PackageReference Include="IronOcr.iOS" Version="YOUR_PACKAGE_VERSION" />
    </ItemGroup>
    <ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
        <PackageReference Include="IronOcr.iOS" Version="YOUR_PACKAGE_VERSION" />
    </ItemGroup>
    XML
  3. Déplacez la référence de package " IronOcr.iOS " à l'intérieur du ItemGroup que nous venons de créer.

Les étapes ci-dessus empêcheront l'utilisation du package " IronOCR.iOS " sur, par exemple, les plateformes Android (pour cela, installez plutôt IronOCR.Android ).

Modifier " MainPage.xaml "

Modifiez le fichier XAML pour afficher un bouton et une étiquette permettant d'afficher le résultat de la reconnaissance optique de caractères (OCR). Par exemple :

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MAUIIronOCRiOSSample.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Text="Import File"
            Clicked="ReadFileOnImport"
            Grid.Row="0"
            HorizontalOptions="Center"
            Margin="20, 20, 20, 10"/>

        <ScrollView
            Grid.Row="1"
            BackgroundColor="LightGray"
            Padding="10"
            Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </Grid>

</ContentPage>
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MAUIIronOCRiOSSample.MainPage">

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <Button
            Text="Import File"
            Clicked="ReadFileOnImport"
            Grid.Row="0"
            HorizontalOptions="Center"
            Margin="20, 20, 20, 10"/>

        <ScrollView
            Grid.Row="1"
            BackgroundColor="LightGray"
            Padding="10"
            Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </Grid>

</ContentPage>
XML

Modifier " MainPage.xaml.cs "

Commencez par instancier l'objet IronTesseract . Veillez à initialiser IronTesseract une seule fois dans une classe, comme indiqué dans le code ci-dessous. L'instancier directement dans une méthode n'est pas efficace et pourrait entraîner des erreurs inattendues. Utilisez ensuite la méthode FilePicker.PickAsync pour sélectionner un fichier. À partir du FileResult , ouvrez un flux de lecture. Créez un nouvel objet OcrInput et utilisez cet objet pour charger l'image. Utilisez l'instance tesseract pour effectuer une reconnaissance optique de caractères (OCR) sur l'image et renvoyer le texte. Enfin, affichez le texte obtenu dans une étiquette.

La version actuelle se limite aux fichiers image. Ce logiciel ne fonctionne pas encore avec les documents PDF. Dans cette optique, toute configuration relative aux documents PDF doit rester désactivée.

using System;
using IronOcr;
using Microsoft.Maui.Controls;

namespace MAUIIronOCRiOSSample;

public partial class MainPage : ContentPage
{
    // Initialize IronTesseract once in a class
    private IronTesseract ocrTesseract = new IronTesseract();

    public MainPage()
    {
        InitializeComponent();
        // Apply license key
        IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
    }

    private async void ReadFileOnImport(object sender, EventArgs e)
    {
        try
        {
            var options = new PickOptions
            {
                PickerTitle = "Please select a file"
            };

            var result = await FilePicker.PickAsync(options);
            if (result != null)
            {
                using var stream = await result.OpenReadAsync();

                // Instantiate OcrInput
                using var ocrInput = new OcrInput();

                // Load image stream
                ocrInput.LoadImage(stream);

                // Perform OCR
                var ocrResult = ocrTesseract.Read(ocrInput);
                OutputText.Text = ocrResult.Text;
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }
}
using System;
using IronOcr;
using Microsoft.Maui.Controls;

namespace MAUIIronOCRiOSSample;

public partial class MainPage : ContentPage
{
    // Initialize IronTesseract once in a class
    private IronTesseract ocrTesseract = new IronTesseract();

    public MainPage()
    {
        InitializeComponent();
        // Apply license key
        IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01";
    }

    private async void ReadFileOnImport(object sender, EventArgs e)
    {
        try
        {
            var options = new PickOptions
            {
                PickerTitle = "Please select a file"
            };

            var result = await FilePicker.PickAsync(options);
            if (result != null)
            {
                using var stream = await result.OpenReadAsync();

                // Instantiate OcrInput
                using var ocrInput = new OcrInput();

                // Load image stream
                ocrInput.LoadImage(stream);

                // Perform OCR
                var ocrResult = ocrTesseract.Read(ocrInput);
                OutputText.Text = ocrResult.Text;
            }
        }
        catch (Exception ex)
        {
            // Handle exceptions
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }
}
Imports System
Imports IronOcr
Imports Microsoft.Maui.Controls

Namespace MAUIIronOCRiOSSample

	Partial Public Class MainPage
		Inherits ContentPage

		' Initialize IronTesseract once in a class
		Private ocrTesseract As New IronTesseract()

		Public Sub New()
			InitializeComponent()
			' Apply license key
			IronOcr.License.LicenseKey = "IRONOCR-MYLICENSE-KEY-1EF01"
		End Sub

		Private Async Sub ReadFileOnImport(ByVal sender As Object, ByVal e As EventArgs)
			Try
				Dim options = New PickOptions With {.PickerTitle = "Please select a file"}

				Dim result = Await FilePicker.PickAsync(options)
				If result IsNot Nothing Then
					Dim stream = Await result.OpenReadAsync()

					' Instantiate OcrInput
					Dim ocrInput As New OcrInput()

					' Load image stream
					ocrInput.LoadImage(stream)

					' Perform OCR
					Dim ocrResult = ocrTesseract.Read(ocrInput)
					OutputText.Text = ocrResult.Text
				End If
			Catch ex As Exception
				' Handle exceptions
				System.Diagnostics.Debug.WriteLine(ex)
			End Try
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Enfin, changez la cible de build sur iOS Simulator et exécutez le projet.

Exécuter le projet

Ceci vous montrera comment exécuter le projet et effectuer la reconnaissance optique de caractères (OCR).

Execute .NET MAUI App project

Télécharger le projet d'application .NET MAUI

Vous pouvez télécharger le code complet pour ce guide. Il vient sous forme d'un fichier zippé que vous pouvez ouvrir dans Visual Studio en tant que projet d'application .NET MAUI.

Cliquez ici pour télécharger le projet.

Utilisation d'IronOcr.iOS à Avalonia

La configuration d'IronOCR.iOS dans Avalonia est similaire à celle de MAUI, à une différence cruciale près : en plus de la dernière version du SDK .NET, vous devez également installer le SDK .NET 8.0.101 pour exécuter IronOCR.iOS correctement. Par la suite, IronOcr.iOS peut être utilisé dans un projet Avalonia avec la même configuration que celle décrite ci-dessus.

Si vous souhaitez effectuer une reconnaissance optique de caractères (OCR) sur Android, consultez l'article suivant pour en savoir plus : " Comment effectuer une OCR sur Android avec .NET MAUI ".

Questions Fréquemment Posées

Comment intégrer la fonctionnalité OCR dans une application .NET MAUI pour iOS ?

Vous pouvez intégrer la fonctionnalité OCR dans une application .NET MAUI pour iOS en utilisant le package IronOCR.iOS. Installez-le via NuGet dans Visual Studio, puis modifiez votre fichier de projet pour inclure le package conditionnellement pour la plateforme iOS. Utilisez IronTesseract pour traiter les images et extraire le texte.

Puis-je utiliser le package IronOCR.iOS pour le traitement de documents PDF ?

Non, le package IronOCR.iOS est actuellement limité au traitement des fichiers image uniquement et ne supporte pas les documents PDF. Assurez-vous que toutes les configurations liées au PDF sont désactivées dans votre projet.

Quelles sont les étapes nécessaires pour configurer l'OCR pour une application iOS en utilisant .NET MAUI ?

Configurer l'OCR pour une application iOS en utilisant .NET MAUI implique de télécharger le package IronOcr.iOS via NuGet, de modifier votre fichier de projet pour inclure conditionnellement le package pour iOS, et d'éditer vos fichiers MainPage.xaml et MainPage.xaml.cs pour créer l'interface utilisateur et gérer le traitement OCR.

Quels sont les besoins supplémentaires pour utiliser IronOCR dans les projets Avalonia ?

Lors de l'utilisation d'IronOCR dans des projets Avalonia, vous devez vous assurer que vous avez la dernière version du SDK .NET et également le SDK .NET 8.0.101 installé. Cette configuration est similaire à MAUI mais nécessite ce SDK supplémentaire.

Comment puis-je effectuer un OCR sur une image en utilisant IronOCR dans un projet .NET MAUI ?

Dans un projet .NET MAUI, utilisez l'objet IronTesseract pour effectuer un OCR sur une image. Utilisez FilePicker.PickAsync pour sélectionner un fichier image, chargez-le dans un objet OcrInput, puis utilisez IronTesseract pour lire l'image et extraire le texte.

Y a-t-il un projet exemple pour implémenter l'OCR sur iOS en utilisant .NET MAUI ?

Oui, vous pouvez télécharger un projet exemple .NET MAUI utilisant IronOCR.iOS depuis le site Web d'Iron Software. Ce projet exemple est disponible sous forme de fichier zippé que vous pouvez ouvrir dans Visual Studio pour accélérer votre processus de développement.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 5,167,857 | Version: 2025.11 vient de sortir