Comment effectuer l'OCR sur iOS dans .NET MAUI
.NET MAUI(L'interface utilisateur des applications multiplateformes) est une évolution du framework Xamarin.Forms, conçu pour créer des applications multiplateformes pour Android, iOS, macOS et Windows à l'aide de .NET. MAUI vise à simplifier le processus de création d'interfaces utilisateur natives pouvant fonctionner sur plusieurs plateformes.
Le paquet IronOcr.iOS apporte la prise en charge de l'OCR à iOS!!
Comment utiliser IronOCR pour .NET MAUI sur iOS ?
IronOCR iOS Package
Le package IronOcr.iOS permet d'activer les fonctionnalités OCR sur les appareils iOS via des projets multiplateformes .NET. Le paquetage IronOCR vanille n'est pas nécessaire.
PM > Install-Package IronOcr.iOS
Installer avec NuGet
Installer le paquet IronOCR.iOS
Créer un projet .NET MAUI
Dans la section Multiplateforme, sélectionnez .NET MAUI App et continuez.
Inclure la bibliothèque IronOCR.iOS
La bibliothèque peut être ajoutée de différentes manières. Le plus simple est sans doute d'utiliser NuGet.
Dans Visual Studio, faites un clic droit sur "Dependencies > Nuget" et sélectionnez "Manage NuGet Packages ...".
Sélectionnez l'onglet "Parcourir" et recherchez "IronOcr.iOS".
Sélectionnez le paquet "IronOCR.iOS" et cliquez sur "Ajouter un paquet".
Pour éviter les problèmes avec d'autres plateformes, modifiez le fichier csproj pour n'inclure le paquet que lorsqu'il s'agit de la plateforme iOS. Pour ce faire :
Cliquez avec le bouton droit de la souris sur le fichier *.csproj de votre projet et sélectionnez "Edit Project File".
- Créez un nouvel élément ItemGroup comme suit :
<ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
</ItemGroup>
Déplacez la PackageReference "IronOcr.iOS" à l'intérieur du ItemGroup que nous venons de créer.
Les étapes ci-dessus empêcheront l'utilisation du paquet "IronOcr.iOS" sur les plates-formes Android, par exemple(à cette fin, installerIronOcr.Android au lieu de).
Modifier "MainPage.xaml"
Modifiez le fichier XAML pour afficher un bouton et une étiquette indiquant le résultat de l'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>
Modifier "MainPage.xaml.cs"
Commencez par instancier l'objet IronTesseract. Veillez à initialiser IronTesseract une fois dans une classe, comme le montre le code ci-dessous. L'instancier directement dans une méthode n'est pas efficace et peut entraîner des erreurs inattendues. Ensuite, utilisez la méthode FilePicker.PickAsync
pour sélectionner un fichier. À partir du FileResult, ouvrez un flux pour la lecture. Créer un nouvel objet OcrInput et utiliser cet objet pour charger l'image. Utiliser l'instance de tesseract pour effectuer l'OCR sur l'image et renvoyer le texte. Enfin, affichez le texte résultant dans une étiquette.
La mise en œuvre actuelle est limitée aux fichiers images. Le logiciel ne fonctionne pas encore avec les documents PDF. Dans cette optique, toute configuration relative aux documents PDF a été désactivée par défaut et doit le rester.
using IronOcr;
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 IronOcr;
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 IronOcr
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
Enfin, changez la cible de construction en iOS Simulator et exécutez le projet.
Exécuter le projet
Il vous montrera comment exécuter le projet et effectuer l'OCR.

Télécharger le projet d'application .NET MAUI
Vous pouvez télécharger le code complet de ce guide. Il s'agit d'un fichier zippé que vous pouvez ouvrir dans Visual Studio en tant que projet .NET MAUI App.
Cliquez ici pour télécharger le projet.
Utiliser IronOCR.iOS dans Avalonia
L'installation d'IronOCR.iOS dans Avalonia est similaire à celle de MAUI, avec une différence cruciale : en plus de la dernière version du SDK .NET, vous avez également besoin des éléments suivants.NET SDK 8.0.101 installé pour exécuter IronOCR.iOS avec succès. 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 sur Android, consultez l'article suivant pour en savoir plus : "Comment effectuer l'OCR sur Android dans .NET MAUI"