Jak przeprowadzić OCR na iOS w .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) to ewolucja frameworka Xamarin.Forms, zaprojektowana do tworzenia aplikacji wieloplatformowych dla systemów Android, iOS, macOS i Windows przy użyciu .NET. MAUI ma na celu uproszczenie procesu tworzenia natywnych interfejsów użytkownika, które mogą działać na wielu platformach.

Pakiet IronOcr.iOS wprowadza obsługę OCR na iOS!

Pakiet IronOCR iOS

Pakiet IronOcr.iOS umożliwia funkcje OCR na urządzeniach iOS za pośrednictwem projektów krzyżowoplatformowych .NET. Standardowy pakiet IronOCR nie jest potrzebny.

Install-Package IronOcr.iOS
Biblioteka C# NuGet dla plików PDF

Zainstaluj za pomocą NuGet

Install-Package IronOcr.iOS

Utwórz projekt .NET MAUI

W sekcji "Multiplatform" wybierz opcję "Aplikacja .NET MAUI" i kontynuuj.

Utwórz projekt aplikacji .NET MAUI

Dołącz bibliotekę IronOCR.iOS

Bibliotekę można dodać na różne sposoby. Najłatwiej jest użyć NuGet.

  1. W programie Visual Studio kliknij prawym przyciskiem myszy "Zależności > NuGet" i wybierz "Zarządzaj pakietami NuGet...".
  2. Wybierz zakładkę "Przeglądaj" i wyszukaj "IronOcr.iOS".
  3. Wybierz pakiet "IronOcr.iOS" i kliknij "Dodaj pakiet".

Pobierz pakiet IronOcr.iOS

Aby zapobiec problemom z innymi platformami, zmodyfikuj plik csproj, aby uwzględniał pakiet tylko wtedy, gdy celem jest platforma iOS. Aby to zrobić:

  1. Kliknij prawym przyciskiem na plik *.csproj w swoim projekcie i wybierz "Edit Project File".
  2. Utwórz nowy element ItemGroup w następujący sposób:

    <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. Przenieś odwołanie do pakietu "IronOcr.iOS" do wnętrza ItemGroup, który właśnie stworzyliśmy.

Powyższe kroki zapobiegną użyciu pakietu "IronOcr.iOS" na platformach takich jak Android (w tym celu zainstaluj zamiast tego IronOcr.Android).

Edytuj "MainPage.xaml"

Edytuj plik XAML, aby wyświetlić przycisk i etykietę pokazujące wynik OCR. Na przykład:

<?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

Edytuj "MainPage.xaml.cs"

Rozpocznij od zainicjowania obiektu IronTesseract. Upewnij się, że zainicjowano IronTesseract raz w klasie, jak pokazano poniżej w kodzie. Zainicjowanie go bezpośrednio w metodzie nie jest efektywne i może prowadzić do nieoczekiwanych błędów. Następnie użyj metody FilePicker.PickAsync, aby wybrać plik. Z FileResult otwórz strumień do odczytu. Utwórz nowy obiekt OcrInput i użyj tego obiektu do załadowania obrazu. Użyj instancji tesseract, aby przeprowadzić OCR na obrazie i zwróć tekst. Na koniec wyświetl wynikowy tekst w etykiecie.

Obecna implementacja jest ograniczona tylko do plików obrazów. Pakiet nie działa jeszcze z dokumentami PDF. Mając to na uwadze, wszelkie konfiguracje związane z dokumentami PDF powinny pozostać wyłączone.

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

Na koniec zmień cel kompilacji na iOS Simulator i uruchom projekt.

Uruchom projekt

Poniżej przedstawiono instrukcję uruchamiania projektu i przeprowadzania OCR.

Execute .NET MAUI App project

Pobierz projekt aplikacji .NET MAUI

Możesz pobrać pełny kod do tego przewodnika. Jest dostępny jako spakowany plik, który możesz otworzyć w Visual Studio jako projekt .NET MAUI App.

Kliknij tutaj, aby pobrać projekt.

Użycie IronOcr.iOS w Avalonia

Konfiguracja IronOcr.iOS w Avalonia jest podobna do MAUI, z jedną kluczową różnicą: oprócz najnowszej wersji SDK .NET musisz również mieć zainstalowane .NET SDK 8.0.101, aby pomyślnie uruchomić IronOcr.iOS. Następnie, IronOcr.iOS można używać w projekcie Avalonia z taką samą konfiguracją, jak opisano powyżej.

Jeśli chcesz przeprowadzić OCR na Androidzie, przejdź do następnego artykułu, aby dowiedzieć się więcej: "Jak przeprowadzić OCR na Androidzie w .NET MAUI"

Często Zadawane Pytania

Jak zintegrować funkcję OCR z aplikacją .NET MAUI na iOS?

Możesz zintegrować funkcję OCR z aplikacją .NET MAUI na iOS, korzystając z pakietu IronOCR.iOS. Zainstaluj go przez NuGet w Visual Studio, a potem zmodyfikuj plik projektu, żeby dołączyć pakiet warunkowo dla platformy iOS. Użyj IronTesseract do przetwarzania obrazów i wyciągania tekstu.

Czy mogę używać pakietu IronOCR.iOS do przetwarzania dokumentów PDF?

Nie, pakiet IronOCR.iOS jest obecnie ograniczony wyłącznie do przetwarzania plików graficznych i nie obsługuje dokumentów PDF. Upewnij się, że wszelkie konfiguracje związane z plikami PDF są wyłączone w Twoim projekcie.

Jakie kroki należy wykonać, aby skonfigurować OCR dla aplikacji na iOS przy użyciu .NET MAUI?

Konfiguracja OCR dla aplikacji na iOS przy użyciu .NET MAUI wymaga pobrania pakietu IronOcr.iOS za pośrednictwem NuGet, zmodyfikowania pliku projektu w celu warunkowego dołączenia pakietu dla iOS oraz edycji plików MainPage.xaml i MainPage.xaml.cs w celu utworzenia interfejsu użytkownika i obsługi przetwarzania OCR.

Jakie są dodatkowe wymagania dotyczące korzystania z IronOCR w projektach Avalonia?

Korzystając z IronOCR w projektach Avalonia, należy upewnić się, że zainstalowano najnowszą wersję .NET SDK, a także .NET SDK 8.0.101. Konfiguracja ta jest podobna do MAUI, ale wymaga tego dodatkowego SDK.

Jak mogę przeprowadzić OCR na obrazie przy użyciu IronOCR w projekcie .NET MAUI?

W projekcie .NET MAUI użyj obiektu IronTesseract, aby wykonać OCR na obrazie. Użyj FilePicker.PickAsync, aby wybrać plik obrazu, załaduj go do obiektu OcrInput, a następnie użyj IronTesseract do odczytania obrazu i wyodrębnienia tekstu.

Czy istnieje przykładowy projekt wdrażania OCR na iOS przy użyciu .NET MAUI?

Tak, możesz pobrać przykładowy projekt .NET MAUI wykorzystujący IronOCR.iOS ze strony internetowej Iron Software. Ten przykładowy projekt jest dostępny w postaci pliku ZIP, który można otworzyć w Visual Studio, aby przyspieszyć proces tworzenia oprogramowania.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 5,571,678 | Wersja: 2026.4 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronOcr
uruchom próbkę obserwuj, jak twój obraz staje się tekstem z możliwością wyszukiwania.