Jak korzystać z SDK skanera dokumentów w aplikacji .NET MAUI
Wraz z rozwojem technologii mobilnych aplikacje do skanowania dokumentów, takie jak Scanbot SDK i Native SDK, stały się niezbędnymi narzędziami zarówno dla osób prywatnych, jak i firm. W tym samouczku omówimy, jak stworzyć aplikację do skanowania dokumentów przy użyciu najnowszej wersji .NET Multi-platform App UI (MAUI) oraz biblioteki IronOCR, potężnej biblioteki OCR (Optical Character Recognition) dla platformy .NET. .NET MAUI upraszcza tworzenie wielopłatformowych aplikacji mobilnych, zapewniając płynne wdrażanie na urządzeniach takich jak Android. Po przeczytaniu tego przewodnika będziesz w stanie stworzyć własną aplikację SDK do skanowania dokumentów, która z łatwością wyodrębni tekst z obrazów i zeskanowanych plików.
Jak korzystać z zestawu SDK skanera dokumentów w aplikacji .NET MAUI
- Zainstaluj bibliotekę IronOCR C#, aby korzystać z zestawu SDK skanera dokumentów.
- Zaprojektuj formularz .NET MAUI z niezbędnymi kontrolkami.
- Zrób zdjęcie za pomocą metody MediaPicker.CapturePhotoAsync.
- Przekonwertuj zrobione zdjęcie na strumień.
- Przekaz strumien do metody OcrInput LoadImage.
- Wykonaj OCR uzywajac metody IronTesseract Read.
- Wyswietl tekst dokumentu, korzystajac z wlasciwosci OcrResult Text.
IronOCR - Biblioteka OCR C#
IronOCR to nowoczesne oprogramowanie do rozpoznawania znakow (OCR) opracowane przez Iron Software, LLC, zaprojektowane do dokladnego i wydajnego konwertowania obrazow oraz zeskanowanych dokumentow na edytowalny tekst. Technologia OCR zrewolucjonizowala, jak firmy zajmuja sie przetwarzaniem dokumentow, ulatwiajac wydobycie wartosciowych informacji z roznych zrodel, takich jak zeskanowane dokumenty, PDFy i obrazy.
IronOCR wyróznia sie sposród rozwiazan OCR, dzieki zaawansowanym funkcjom, niezawodnej wydajnosci i latwosci integracji. Czy jestes deweloperem szukajacym integracji funkcji OCR do swoich aplikacji, czy firma poszukujaca sposobow na optymalizacje zarzadzania dokumentami, IronOCR oferuje kompleksowe rozwiazanie.
Najważniejsze cechy IronOCR
- Wysoka dokladnosc: IronOCR stosuje najnowoczesniejsze algorytmy i techniki uczenia maszynowego, aby osiagnac wyjatkowa dokladnosc w rozpoznawaniu tekstu. Moze precyzyjnie wydobywac tekst z zlozonych dokumentow, wlacznie z obrazami o niskiej rozdzielczosci lub slabej jakosci skanowania.
- Wsparcie dla wielu jezykow: IronOCR wspiera rozpoznawanie tekstu w ponad 125 jezykach, sprawiajac, ze jest odpowiednia dla firm dzialajacych w roznych srodowiskach jezykowych.
- Wstepne przetwarzanie obrazu: IronOCR zapewnia rozne mozliwosci wstepnego przetwarzania obrazow, takie jak redukcja szumow, regulacja kontrastu i prostowanie, aby zwiekszyc dokladnosc. Te techniki poprawiaja wyniki OCR, szczegolnie w przypadku znieksztalconych lub niedoskonalych obrazow.
- Wsparcie dla roznych formatow plikow: IronOCR obsluguje szeroki wachlarz formatow plikow, wlaczajac TIFF, JPEG, PNG i PDF, zapewniajac kompatybilnosc z roznymi zrodlami dokumentow.
- Opcje dostosowywania: Deweloperzy moga dostosowywac zachowanie IronOCR, by spelnic specyficzne wymagania, oferujac elastycznosc w parametrach rozpoznawania i integracji przeplywu pracy.
- Szybka i skalowalna: Optymalizowana dla wydajnosci, IronOCR szybko wyciaga tekst z duzych ilosci dokumentow. Jej skalowalna architektura zapewnia bezproblemowe dzialanie, niezaleznie od ilosci dokumentow.
- Integracja z aplikacjami .NET: IronOCR bezproblemowo integruje sie z aplikacjami .NET, zapewniajac latwe w uzyciu API do integracji funkcjonalnosci OCR. To upraszcza rozwój i przyspiesza wprowadzenie na rynek aplikacji z funkcjonalnoscią OCR.
- Klasyfikacja dokumentow i ekstrakcja danych: Poza podstawowym rozpoznawaniem tekstu, IronOCR oferuje zaawansowane funkcje do klasyfikacji dokumentow i ekstrakcji danych, identyfikujac konkretne pola danych, takie jak nazwy, adresy lub numery faktur.
Wymagania wstępne
- Podstawowa znajomosc programowania w języku C#.
- Zainstalowany Visual Studio 2022 z obciazeniem .NET MAUI.
- Zainstalowana biblioteka IronOCR poprzez menedżer pakietow NuGet.
1. Ustawienie projektu .NET MAUI
- Otworz Visual Studio 2022 i utworz nowy projekt .NET MAUI App.

- Wybierz odpowiednia nazwe projektu i skonfiguruj ustawienia projektu.

- Upewnij sie, ze masz zainstalowane wymagane SDK Android i iOS dla rozwoju urzadzen docelowych.
2. Instalowanie biblioteki IronOCR
- Kliknij prawym przyciskiem myszy na swoje Rozwiazanie w Visual Studio.
- Wybierz "Zarzadzaj pakietami NuGet dla rozwiazania" i w zakladce Przegladanie, wyszukaj "IronOCR".

- Zainstaluj biblioteke IronOCR do swojego projektu.
3. Projektowanie UI
Zaczniemy od zaprojektowania ukladu naszej MainPage.xaml. Utworzymy prosty uklad z kontrolka obrazu do wyswietlania uchwyconego zdjecia, przyciskiem Capture do robienia zdjec oraz etykieta do wyswietlania wyodrebnionego tekstu.
Oto kod XAML dla 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" />
<Image x:Name="cameraPreview" />
<Button Text="Capture" Clicked="OnCaptureClicked" />
<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" />
<Image x:Name="cameraPreview" />
<Button Text="Capture" Clicked="OnCaptureClicked" />
<Label x:Name="textLabel" Text="Recognized Text:"/>
</VerticalStackLayout>
</ScrollView>
</ContentPage>
W tym ukladem:
- Uzywamy VerticalStackLayout do ukladu pionowego.
- Kontrolka Image o nazwie cameraPreview jest uzywana do wyswietlania uchwyconego zdjecia.
- Kontrolka Button wywoluje obsluge zdarzenia OnCaptureClicked po kliknieciu.
- Kontrolka Label o nazwie textLabel jest uzywana do wyswietlania wyodrebnionego tekstu.
Wynik

4. Implementacja funkcjonalnosci skanowania dokumentow
Aby zintegrowac funkcjonalnosc ekstrakcji tekstu do naszej aplikacji do skanowania dokumentow .NET MAUI, postepujemy zgodnie z tymi krokami:
- Wykorzystaj API Kamery: Wykorzystaj API kamery udostepnione przez .NET MAUI do uchwycenia plikow obrazow bezposrednio w aplikacji.
- Przekaz obraz do IronOCR: Po uchwyceniu obrazu, przekaz go do IronOCR do ekstrakcji tekstu, wykorzystujac jego solidna funkcjonalnosc.
- Wyswietl wyodrebniony tekst: Wyswietl wyodrebniony tekst w wyznaczonym miejscu na interfejsie uzytkownika aplikacji, aby uzytkownik mogl go zobaczyc.
Oto odpowiadajacy fragment kodu implementujacy te kroki:
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
Wyjaśnienie kodu
Przeanalizujmy kod krok po kroku:
- W pliku MainPage.xaml.cs zdefiniowana jest metoda OnCaptureClicked do obslugi zdarzenia klikniecia przycisku Capture.
- Ustawiony jest klucz licencyjny IronOCR, niezbedny do korzystania z biblioteki IronOCR. Zastąp
"YOUR-LICENSE-KEY-HERE"swoim własnym kluczem licencyjnym. - Uprawnienia kamery sa wymagane za pomoca Permissions.RequestAsync
() , aby upewnic sie, ze aplikacja ma dostep do kamery urzadzenia. - Wywolano MediaPicker.CapturePhotoAsync(), aby zrobic zdjecie przy uzyciu kamery. Jesli sie powiedzie, zdjecie jest wyswietlane w kontrolce cameraPreview Image.
- Strumien z uchwyconego zdjecia jest otwierany i uzywany jako wejsciowy dla IronOCR, tworzac instancje IronTesseract, ladujac strumien obrazu do obiektu OcrInput i wywolujac metode Read dla wykonania OCR.
- Jesli sie powiedzie, wyodrebniony tekst jest wyswietlany w kontrolce textLabel. Jesli nie wykryto tekstu, wyswietla sie komunikat o bledzie za pomoca DisplayAlert.
Dla dalszego eksplorowania IronOCR i dodatkowych przykladow kodu, odwiedz strone przyklady kodu.
5. Testowanie aplikacji skanujacej dokumenty
- Uruchom aplikacje na roznych platformach (Android, iOS i Windows), aby zapewnic kompatybilnosc miedzyplatformowa.
- Przetestuj rozne scenariusze, takie jak skanowanie dokumentow z roznych czcionek, rozmiarow i orientacji.
- Zweryfikuj, czy wyodrebniony tekst jest dokladny i prawidlowo wyswietlany na interfejsie uzytkownika.
Wyjście - Zeskanowany Dokument bez Tekstu

Wyjście - Zeskanowany Dokument z Tekstem

Wnioski
Podazajac za tym tutorialem, nauczyliscie sie, jak uzywac SDK skanera dokumentow IronOCR w obrebie .NET MAUI. Aplikacje skanujace dokumenty maja wiele praktycznych zastosowan, od digitalizacji dokumentow papierowych po wydobywanie informacji przechowywanych na paragonach i fakturach. Wykorzystujac potezne mozliwosci IronOCR i elastycznosc .NET MAUI, mozecie budowac bogate w funkcje aplikacje skanujace dokumenty, ktore spełniają rozne przypadki uzycia. Eksperymentuj z roznymi funkcjonalnosciami, eksploruj dodatkowe biblioteki i nadal udoskonalaj swoje umiejetnosci, aby tworzyc jeszcze bardziej imponujace aplikacje.
Dla bardziej szczegolowych informacji na temat mozliwosci IronOCR, odwiedz te strone dokumentacja.
IronOCR zapewnia darmowa wersje probna, aby przetestowac jego pelna funkcjonalnosc w trybie komercyjnym. Jej wieczysta licencja lite zaczyna się od $999. Pobierz biblioteke z strony pobierania i wyproboj.
Często Zadawane Pytania
Jak stworzyć aplikację do skanowania dokumentów przy użyciu .NET MAUI?
Możesz stworzyć aplikację do skanowania dokumentów przy użyciu .NET MAUI, wykorzystując IronOCR do optycznego rozpoznawania znaków. Zacznij od zainstalowania IronOCR za pomocą menedżera pakietów NuGet w Visual Studio, a następnie użyj .NET MAUI do zaprojektowania interfejsu użytkownika aplikacji i zaimplementuj funkcję skanowania za pomocą metody Read biblioteki IronTesseract.
Jakie są zalety korzystania z IronOCR w aplikacji do skanowania dokumentów?
IronOCR zapewnia wysoką dokładność rozpoznawania tekstu, obsługę wielu języków oraz kompatybilność z różnymi formatami plików. Oferuje również przetwarzanie wstępne obrazów, wysoką wydajność oraz płynną integrację z aplikacjami .NET, co czyni go solidnym wyborem dla aplikacji do skanowania dokumentów.
Jak zainstalować IronOCR w projekcie .NET MAUI?
Aby zainstalować IronOCR w projekcie .NET MAUI, otwórz Visual Studio i użyj menedżera pakietów NuGet, aby wyszukać „IronOCR”. Dodaj pakiet do swojego projektu, aby rozpocząć korzystanie z jego funkcji OCR.
Jakie kroki obejmuje przechwytywanie i przetwarzanie obrazów w aplikacji do skanowania dokumentów?
Proces ten obejmuje użycie MediaPicker do przechwytywania obrazów, konwersję ich do formatu strumieniowego, a następnie użycie IronTesseract z IronOCR do wyodrębnienia tekstu. Wyodrębniony tekst może być wyświetlany w interfejsie użytkownika aplikacji.
Jakie formaty plików są obsługiwane przez IronOCR do przetwarzania OCR?
IronOCR obsługuje szeroki zakres formatów plików, w tym TIFF, JPEG, PNG i PDF, co zapewnia wszechstronne możliwości skanowania dokumentów i wyodrębniania tekstu.
Czy IronOCR obsługuje OCR w wielu językach?
Tak, IronOCR obsługuje OCR w ponad 125 językach, dzięki czemu nadaje się do zastosowań wymagających rozpoznawania tekstu w różnych kontekstach językowych.
W jaki sposób .NET MAUI ułatwia tworzenie aplikacji wielopłatformowych?
.NET MAUI umożliwia programistom tworzenie wielopłatformowych aplikacji mobilnych przy użyciu jednego kodu źródłowego, co pozwala na płynne wdrażanie na urządzeniach z systemami Android, iOS i Windows.
Jakie są wymagania wstępne dotyczące tworzenia aplikacji do skanowania dokumentów przy użyciu .NET MAUI?
Wymagania wstępne obejmują podstawową znajomość programowania w języku C#, Visual Studio 2022 z środowiskiem .NET MAUI oraz bibliotekę IronOCR zainstalowaną z NuGet.
Jak mogę sprawdzić kompatybilność mojej aplikacji do skanowania dokumentów na różnych platformach?
Możesz przetestować swoją aplikację do skanowania dokumentów na różnych platformach, wdrażając ją na urządzeniach z systemami Android, iOS i Windows, aby zapewnić funkcjonalność i dokładność wyodrębniania tekstu, wykorzystując możliwości wielopłatformowe .NET MAUI.




