Como Realizar OCR no iOS em .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) é uma evolução do framework Xamarin.Forms, projetado para criar aplicativos multiplataforma para Android, iOS, macOS e Windows usando .NET. MAUI visa simplificar o processo de construção de interfaces de usuário nativas que podem ser executadas em várias plataformas.

O pacote IronOcr.iOS traz suporte de OCR para iOS!

Pacote IronOCR para iOS

O pacote IronOcr.iOS permite recursos de OCR em dispositivos iOS via projetos multiplataforma .NET. O pacote básico do IronOCR não é necessário.

Install-Package IronOcr.iOS
Biblioteca NuGet C# para PDF
### Instalar com NuGet
Install-Package IronOcr.iOS

Criar um projeto .NET MAUI

Na seção Multiplataforma, selecione .NET MAUI App e continue.

Criar projeto de aplicativo .NET MAUI

Incluir a Biblioteca IronOCR.iOS

A biblioteca pode ser adicionada de várias maneiras. A maneira mais fácil é talvez usando o NuGet.

  1. Dentro do Visual Studio, clique com o botão direito em "Dependencies > NuGet" e selecione "Manage NuGet Packages ...".
  2. Selecione a aba "Procurar" e pesquise por "IronOcr.iOS".
  3. Selecione o pacote "IronOcr.iOS" e clique em "Adicionar Pacote".

Baixar pacote IronOcr.iOS

Para evitar problemas com outras plataformas, modifique o arquivo csproj para incluir o pacote apenas quando direcionado à plataforma iOS. Para fazer isso:

  1. Clique com o botão direito no arquivo *.csproj do seu projeto e selecione "Editar Arquivo do Projeto".
  2. Crie um novo elemento ItemGroup assim:

    <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. Mova o PackageReference "IronOcr.iOS" para dentro do ItemGroup que acabamos de criar.

As etapas acima impedirão que o pacote "IronOcr.iOS" seja usado em, por exemplo, plataformas Android (para esse fim, instale o IronOcr.Android em vez disso).

Editar "MainPage.xaml"

Edite o arquivo XAML para exibir um botão e um rótulo para mostrar o resultado do OCR. Por exemplo:

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

Editar "MainPage.xaml.cs"

Comece instanciando o objeto IronTesseract. Certifique-se de inicializar IronTesseract uma vez em uma classe, conforme mostrado no código abaixo. Instanciá-la diretamente em um método não é eficaz e pode levar a erros inesperados. Então, use o método FilePicker.PickAsync para selecionar um arquivo. A partir do FileResult, abra um stream para leitura. Crie um novo objeto OcrInput e use este objeto para carregar a imagem. Use a instância tesseract para realizar OCR na imagem e retornar o texto. Por fim, exiba o texto resultante em um rótulo.

A implementação atual está limitada apenas a arquivos de imagem. O pacote ainda não funciona com documentos PDF. Com isso em mente, qualquer configuração relacionada a documentos PDF deve permanecer desativada.

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);
        }
    }
}
$vbLabelText   $csharpLabel

Por fim, altere o alvo de compilação para o iOS Simulator e execute o projeto.

Execute o projeto

Isso mostrará como executar o projeto e realizar OCR.

Execute .NET MAUI App project

Baixar Projeto de App .NET MAUI

Você pode baixar o código completo deste guia. Ele está compactado em um arquivo zip que pode ser aberto no Visual Studio como um projeto de aplicativo .NET MAUI .

Clique aqui para baixar o projeto.

Usando IronOcr.iOS no Avalonia

Configurar IronOcr.iOS no Avalonia é semelhante ao MAUI, com uma diferença crucial: além da versão mais recente do SDK do .NET, você também precisa do .NET SDK 8.0.101 instalado para executar IronOcr.iOS com sucesso. Depois, o IronOcr.iOS pode ser usado em um projeto Avalonia com a mesma configuração descrita acima.

Se você quiser realizar OCR no Android, navegue para o seguinte artigo para saber mais: "Como Realizar OCR no Android no .NET MAUI"

Perguntas frequentes

Como faço para integrar a funcionalidade de OCR em um aplicativo .NET MAUI para iOS?

Você pode integrar a funcionalidade de OCR em um aplicativo .NET MAUI para iOS usando o pacote IronOCR.iOS. Instale-o via NuGet no Visual Studio e, em seguida, modifique o arquivo de projeto para incluir o pacote condicionalmente para a plataforma iOS. Use IronTesseract para processar imagens e extrair texto.

Posso usar o pacote IronOCR.iOS para processamento de documentos PDF?

Não, o pacote IronOCR.iOS está atualmente limitado ao processamento de arquivos de imagem e não oferece suporte a documentos PDF. Certifique-se de que todas as configurações relacionadas a PDF estejam desativadas em seu projeto.

Quais são os passos envolvidos na configuração de OCR para um aplicativo iOS usando .NET MAUI?

A configuração do OCR para um aplicativo iOS usando o .NET MAUI envolve o download do pacote IronOcr.iOS via NuGet, a modificação do arquivo de projeto para incluir condicionalmente o pacote para iOS e a edição dos arquivos MainPage.xaml e MainPage.xaml.cs para criar a interface do usuário e lidar com o processamento de OCR.

Quais são os requisitos adicionais para usar o IronOCR em projetos Avalonia?

Ao usar o IronOCR em projetos Avalonia, você precisa garantir que tenha a versão mais recente do SDK do .NET e também o SDK do .NET 8.0.101 instalado. Essa configuração é semelhante à do MAUI, mas requer este SDK adicional.

Como posso realizar OCR em uma imagem usando o IronOCR em um projeto .NET MAUI?

Em um projeto .NET MAUI, utilize o objeto IronTesseract para realizar OCR em uma imagem. Use FilePicker.PickAsync para selecionar um arquivo de imagem, carregue-o em um objeto OcrInput e, em seguida, use IronTesseract para ler a imagem e extrair o texto.

Existe algum projeto de exemplo para implementar OCR no iOS usando .NET MAUI?

Sim, você pode baixar um projeto de exemplo .NET MAUI usando o IronOCR.iOS do site da Iron Software. Este projeto de exemplo está disponível como um arquivo compactado que você pode abrir no Visual Studio para agilizar seu processo de desenvolvimento.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.