Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
Avec l'essor de la technologie mobile, les applications de numérisation de documents telles que Scanbot SDK et Native SDK sont devenues des outils indispensables ou des experts en solutions pour les particuliers comme pour les entreprises. Dans ce tutoriel, nous verrons comment créer une application de numérisation de documents à l'aide de la dernière version de .NET Multi-platform App UI(MAUI) et IronOCR, un puissant outil d'OCR(Reconnaissance optique de caractères) pour .NET. .NET MAUI simplifie la création d'applications mobiles multiplateformes telles qu'Android, garantissant un déploiement transparent sur l'appareil de l'utilisateur final. À la fin de ce guide, vous serez en mesure de développer votre propre application SDK de scanner de documents, capable d'extraire facilement du texte à partir d'images et de fichiers numérisés.
Installez la bibliothèque C# d'IronOCR** pour utiliser le SDK de numérisation de documents.
Concevoir un formulaire MAUI .NET avec les contrôles nécessaires.
Capturez le cadre photo en utilisant la méthode MediaPicker.CapturePhotoAsync.
Convertir la photo capturée en Stream.
Transmettre le flux à la méthode LoadImage d'OcrInput.
Effectuer l'OCR en utilisant la méthode Lire d'IronTesseract.
IronOCR est un système de reconnaissance optique de caractères de pointe(OCR) logiciel développé par Iron Software, LLC, conçu pour convertir avec précision et efficacité des images et des documents scannés en texte éditable. La technologie OCR a révolutionné la manière dont les entreprises traitent les documents, en facilitant l'extraction d'informations précieuses à partir de diverses sources telles que les documents numérisés, les PDF et les images.
IronOCR se distingue des autres solutions d'OCR par ses fonctionnalités avancées, ses performances robustes et sa facilité d'intégration. Que vous soyez un développeur cherchant à intégrer des fonctions d'OCR dans vos applications ou une entreprise cherchant à rationaliser les processus de gestion des documents générés par les données, IronOCR offre une solution complète.
Voici quelques caractéristiques importantes de l'IronOCR :
Haute précision: IronOCR utilise des algorithmes de pointe et des techniques d'apprentissage automatique pour atteindre une précision exceptionnelle dans la reconnaissance de texte. Il peut extraire avec précision du texte à partir de documents complexes, y compris des images à faible résolution QR ou des numérisations de mauvaise qualité.
**L'une des caractéristiques les plus remarquables d'IronOCR est sa prise en charge étendue des langues. Il peut reconnaître des textes dans plus de 127 langues, ce qui le rend adapté aux entreprises opérant dans des environnements linguistiques divers.
Traitement d'image: Pour améliorer la précision, IronOCR fournit diverses capacités de traitement d'image, telles que la réduction du bruit, l'ajustement du contraste et le désalignement. Ces techniques de prétraitement permettent d'améliorer les résultats de l'OCR, en particulier lorsqu'il s'agit d'images déformées ou imparfaites.
Prise en charge de divers formats de fichiers: IronOCR prend en charge un large éventail de formats de fichiers, notamment TIFF, JPEG, PNG et PDF. Cette flexibilité permet aux utilisateurs de traiter des documents provenant de différentes sources sans se soucier des problèmes de compatibilité.
Options de personnalisation: Les développeurs peuvent personnaliser le comportement d'IronOCR en fonction de leurs besoins spécifiques. Qu'il s'agisse d'affiner les paramètres de reconnaissance ou de s'intégrer aux flux de travail existants, IronOCR offre un haut degré de flexibilité et de personnalisation.
Rapide et évolutif: IronOCR est optimisé pour la performance, permettant une extraction de texte rapide même à partir de grands volumes de documents. Son architecture évolutive garantit un fonctionnement sans faille, qu'il s'agisse de traiter une poignée de documents ou de gérer des référentiels documentaires massifs.
Intégration avec les applications .NET: IronOCR s'intègre de manière transparente aux applications .NET, offrant aux développeurs des API et des bibliothèques faciles à utiliser pour incorporer la fonctionnalité OCR dans leurs projets logiciels. Cette intégration étroite simplifie le développement et accélère la mise sur le marché des applications basées sur l'OCR.
Ouvrez Visual Studio 2022 et créez un nouveau projet .NET MAUI App.
Choisissez un nom de projet approprié et configurez les paramètres de votre projet.
Cliquez avec le bouton droit de la souris sur votre solution dans Visual Studio.
Commençons par concevoir la disposition de notre MainPage.xaml. Nous allons créer une présentation simple avec un contrôle d'image pour afficher la photo capturée, un bouton Capture pour prendre des photos et une étiquette pour afficher le texte extrait.
Voici le code XAML de MainPage.xaml :
<?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"
xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design"
x:Class="DocumentScanner.MainPage">
<ScrollView>
<VerticalStackLayout
Padding="30,0"
Spacing="25">
<Image
Source="dotnet_bot.png"
HeightRequest="185"
Aspect="AspectFit"
SemanticProperties.Description="dot net bot in a race car number eight" />
<Label
Text="Welcome to .NET MAUI Document Scanner SDK"
Style="{StaticResource Headline}"
SemanticProperties.HeadingLevel="Level1" />
<Label
Text="Using IronOCR"
Style="{StaticResource SubHeadline}"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome to .NET MAUI Document Scanner SDK" />
<!-- Camera preview -->
<Image x:Name="cameraPreview" />
<!-- Capture button -->
<Button Text="Capture" Clicked="OnCaptureClicked" />
<!-- Text display area -->
<Label x:Name="textLabel"
Text="Recognized Text:"/>
</VerticalStackLayout>
</ScrollView>
</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"
xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design"
x:Class="DocumentScanner.MainPage">
<ScrollView>
<VerticalStackLayout
Padding="30,0"
Spacing="25">
<Image
Source="dotnet_bot.png"
HeightRequest="185"
Aspect="AspectFit"
SemanticProperties.Description="dot net bot in a race car number eight" />
<Label
Text="Welcome to .NET MAUI Document Scanner SDK"
Style="{StaticResource Headline}"
SemanticProperties.HeadingLevel="Level1" />
<Label
Text="Using IronOCR"
Style="{StaticResource SubHeadline}"
SemanticProperties.HeadingLevel="Level2"
SemanticProperties.Description="Welcome to .NET MAUI Document Scanner SDK" />
<!-- Camera preview -->
<Image x:Name="cameraPreview" />
<!-- Capture button -->
<Button Text="Capture" Clicked="OnCaptureClicked" />
<!-- Text display area -->
<Label x:Name="textLabel"
Text="Recognized Text:"/>
</VerticalStackLayout>
</ScrollView>
</ContentPage>
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'<?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" xmlns:d="http://schemas.microsoft.com/dotnet/2021/maui/design" x:@Class="DocumentScanner.MainPage"> <ScrollView> <VerticalStackLayout Padding="30,0" Spacing="25"> <Image Source="dotnet_bot.png" HeightRequest="185" Aspect="AspectFit" SemanticProperties.Description="dot net bot in a race car number eight" /> <Label Text="Welcome to .NET MAUI Document Scanner SDK" Style="{StaticResource Headline}" SemanticProperties.HeadingLevel="Level1" /> <Label Text="Using IronOCR" Style="{StaticResource SubHeadline}" SemanticProperties.HeadingLevel="Level2" SemanticProperties.Description="Welcome to .NET MAUI Document Scanner SDK" /> <!-- Camera preview -- > <Image x:Name="cameraPreview" /> <!-- Capture button -- > <Button Text="Capture" Clicked="OnCaptureClicked" /> <!-- Text display area -- > <Label x:Name="textLabel" Text="Recognized Text:"/> </VerticalStackLayout> </ScrollView> </ContentPage>
Dans cette mise en page :
Pour intégrer la fonctionnalité d'extraction de texte dans notre application .NET de numérisation de documents MAUI, nous allons suivre les étapes suivantes :
Utiliser l'API de la caméra : Commencez par exploiter l'API de caméra fournie par .NET MAUI pour capturer des fichiers d'images directement dans votre application.
Passer l'image à IronOCR : Une fois l'image capturée, transmettez-la à IronOCR, une puissante bibliothèque d'OCR, pour l'extraction de texte. IronOCR offre une fonctionnalité robuste pour l'extraction de texte à partir d'images avec une grande précision.
Afficher le texte extrait : Enfin, affichez le texte extrait dans la zone désignée de l'interface utilisateur de votre application. Cela permet aux utilisateurs de visualiser facilement le texte extrait de l'image capturée ou du code QR.
Voici l'extrait de code correspondant qui met en œuvre ces étapes :
using IronOcr;
namespace DocumentScanner
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnCaptureClicked(object sender, EventArgs e)
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
try
{
// Request camera permissions
var status = await Permissions.RequestAsync<Permissions.Camera>();
if (status == PermissionStatus.Granted)
{
// Take photo
var photo = await MediaPicker.CapturePhotoAsync();
if (photo != null)
{
// Display captured photo in Image
cameraPreview.Source = ImageSource.FromStream(() => photo.OpenReadAsync().Result);
using (var stream = await photo.OpenReadAsync())
{
// Use a stream from the captured photo for OCR
var ocr = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(stream);
var ocrResult = ocr.Read(ocrInput);
if (string.IsNullOrEmpty(ocrResult.Text))
{
await DisplayAlert("Error", "No Text Detected!", "OK");
}
else
{
await DisplayAlert("Text Detected!", ocrResult.Text, "OK");
// Display extracted text
textLabel.Text = ocrResult.Text;
}
}
}
}
else
{
// Camera permission denied
await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK");
}
}
catch (Exception ex)
{
// Handle exception
await DisplayAlert("Error", ex.Message, "OK");
}
}
}
}
using IronOcr;
namespace DocumentScanner
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnCaptureClicked(object sender, EventArgs e)
{
License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
try
{
// Request camera permissions
var status = await Permissions.RequestAsync<Permissions.Camera>();
if (status == PermissionStatus.Granted)
{
// Take photo
var photo = await MediaPicker.CapturePhotoAsync();
if (photo != null)
{
// Display captured photo in Image
cameraPreview.Source = ImageSource.FromStream(() => photo.OpenReadAsync().Result);
using (var stream = await photo.OpenReadAsync())
{
// Use a stream from the captured photo for OCR
var ocr = new IronTesseract();
using var ocrInput = new OcrInput();
ocrInput.LoadImage(stream);
var ocrResult = ocr.Read(ocrInput);
if (string.IsNullOrEmpty(ocrResult.Text))
{
await DisplayAlert("Error", "No Text Detected!", "OK");
}
else
{
await DisplayAlert("Text Detected!", ocrResult.Text, "OK");
// Display extracted text
textLabel.Text = ocrResult.Text;
}
}
}
}
else
{
// Camera permission denied
await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK");
}
}
catch (Exception ex)
{
// Handle exception
await DisplayAlert("Error", ex.Message, "OK");
}
}
}
}
Imports IronOcr
Namespace DocumentScanner
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
InitializeComponent()
End Sub
Private Async Sub OnCaptureClicked(ByVal sender As Object, ByVal e As EventArgs)
License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
Try
' Request camera permissions
Dim status = Await Permissions.RequestAsync(Of Permissions.Camera)()
If status = PermissionStatus.Granted Then
' Take photo
Dim photo = Await MediaPicker.CapturePhotoAsync()
If photo IsNot Nothing Then
' Display captured photo in Image
cameraPreview.Source = ImageSource.FromStream(Function() photo.OpenReadAsync().Result)
Using stream = Await photo.OpenReadAsync()
' Use a stream from the captured photo for OCR
Dim ocr = New IronTesseract()
Dim ocrInput As New OcrInput()
ocrInput.LoadImage(stream)
Dim ocrResult = ocr.Read(ocrInput)
If String.IsNullOrEmpty(ocrResult.Text) Then
Await DisplayAlert("Error", "No Text Detected!", "OK")
Else
Await DisplayAlert("Text Detected!", ocrResult.Text, "OK")
' Display extracted text
textLabel.Text = ocrResult.Text
End If
End Using
End If
Else
' Camera permission denied
Await DisplayAlert("Permission Denied", "Camera permission is required to capture photos.", "OK")
End If
Catch ex As Exception
' Handle exception
Await DisplayAlert("Error", ex.Message, "OK")
End Try
End Sub
End Class
End Namespace
Décomposons le code étape par étape :
Si le texte est extrait avec succès, nous l'affichons dans un contrôle Label nommé textLabel. Si aucun texte n'est détecté, nous affichons un message d'erreur à l'aide de DisplayAlert.
Pour une utilisation plus robuste d'IronOCR et des détails sur le code, consultez cette pageexemples de code page.
En suivant ce tutoriel, vous avez appris à utiliser le SDK du scanner de documents IronOCR dans .NET MAUI. Les applications de numérisation de documents ont de nombreuses applications pratiques, allant de la numérisation de documents papier à l'extraction d'informations stockées dans des reçus et des factures. Grâce aux puissantes capacités d'IronOCR et à la flexibilité de .NET MAUI, vous pouvez créer des applications de numérisation de documents riches en fonctionnalités qui répondent à divers cas d'utilisation. Expérimentez différentes fonctionnalités, explorez d'autres bibliothèques et continuez à perfectionner vos compétences pour créer des applications encore plus impressionnantes.
Pour de plus amples informations sur les capacités de l'IronOCR, veuillez consulter le site suivantdocumentation page.
L'IronOCR fournit uneessai gratuit pour tester l'ensemble de ses fonctionnalités en mode commercial. Sa lumière perpétuellelicense à partir de 749 $. Télécharger la bibliothèque à partir detéléchargement page et essayez-le.
9 produits de l'API .NET pour vos documents de bureau