Ir para o conteúdo do rodapé
USANDO O IRONBARCODE

Como usar um SDK de scanner de documentos em um aplicativo .NET MAUI

Com o crescimento da tecnologia móvel, aplicativos de digitalização de documentos, como o Scanbot SDK e SDKs Nativos, tornaram-se ferramentas indispensáveis tanto para indivíduos quanto para empresas. Neste tutorial, exploraremos como criar um aplicativo de digitalização de documentos usando a versão mais recente do .NET Multi-platform App UI (MAUI) e IronOCR, uma poderosa biblioteca de OCR (reconhecimento óptico de caracteres) for .NET. .NET MAUI simplifica a criação de aplicativos móveis multiplataforma, garantindo implantação contínua em dispositivos como Android. Ao final deste guia, você será capaz de desenvolver seu próprio aplicativo de SDK de digitalização de documentos que pode extrair texto de imagens e arquivos digitalizados com facilidade.

Como usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI

  1. Instale a Biblioteca C# IronOCR para usar o SDK de Scanner de Documentos.
  2. Projete um Formulário .NET MAUI com os controles necessários.
  3. Capture uma foto usando o método MediaPicker.CapturePhotoAsync.
  4. Converta a foto capturada em um Stream.
  5. Passe o stream para o método LoadImage do OcrInput.
  6. Realize OCR usando o método Read do IronTesseract.
  7. Exiba o texto do documento usando a propriedade Text do OcrResult.

IronOCR - A BibliotecaOCR C#

IronOCR é um software de Reconhecimento Óptico de Caracteres (OCR) de ponta desenvolvido pela Iron Software, LLC, projetado para converter imagens e documentos digitalizados em texto editável de maneira precisa e eficiente. A tecnologia OCR revolucionou a forma como as empresas lidam com o processamento de documentos, facilitando a extração de informações valiosas de diversas fontes, como documentos digitalizados, PDFs e imagens.

IronOCR se destaca entre as soluções de OCR devido a seus recursos avançados, desempenho robusto e facilidade de integração. Seja você um desenvolvedor buscando incorporar recursos de OCR em seus aplicativos ou uma empresa procurando otimizar processos de gerenciamento de documentos, o IronOCR oferece uma solução abrangente.

Principais características do IronOCR

  1. Alta Precisão: O IronOCR emprega algoritmos de última geração e técnicas de aprendizado de máquina para alcançar excepcional precisão no reconhecimento de texto. Ele pode extrair texto com precisão de documentos complexos, incluindo imagens de baixa resolução ou digitalizações de má qualidade.
  2. Suporte Multilíngue: O IronOCR suporta reconhecimento de texto em mais de 125 idiomas, sendo adequado para empresas operando em ambientes linguísticos diversos.
  3. Pré-processamento de Imagens: O IronOCR oferece várias capacidades de pré-processamento de imagens, como redução de ruído, ajuste de contraste e correção de inclinação, para melhorar a precisão. Essas técnicas melhoram os resultados do OCR, especialmente com imagens distorcidas ou imperfeitas.
  4. Suporte para Vários Formatos de Arquivo: O IronOCR suporta uma ampla gama de formatos de arquivo, incluindo TIFF, JPEG, PNG e PDF, garantindo compatibilidade com diferentes fontes de documentos.
  5. Opções de Personalização: Os desenvolvedores podem personalizar o comportamento do IronOCR para atender a requisitos específicos, oferecendo flexibilidade nos parâmetros de reconhecimento e na integração do fluxo de trabalho.
  6. Rápido e Escalável: Otimizado para desempenho, o IronOCR extrai rapidamente texto de grandes volumes de documentos. Sua arquitetura escalável garante operação contínua, independentemente do volume de documentos.
  7. Integração com Aplicações .NET: O IronOCR se integra perfeitamente com aplicações .NET, proporcionando uma API fácil de usar para incorporar a funcionalidade de OCR. Isso simplifica o desenvolvimento e acelera o tempo de lançamento no mercado para aplicações habilitadas com OCR.
  8. Classificação de Documentos e Extração de Dados: Além do reconhecimento básico de texto, o IronOCR oferece recursos avançados para classificação de documentos e extração de dados, identificando campos de dados específicos como nomes, endereços ou números de faturas.

Pré-requisitos

  • Conhecimento básico de programação C#.
  • Visual Studio 2022 instalado com a carga de trabalho .NET MAUI.
  • Biblioteca de pacotes IronOCR instalada via Gerenciador de Pacotes NuGet.

1. Configurando Seu Projeto .NET MAUI

  • Abra o Visual Studio 2022 e crie um novo projeto App .NET MAUI.

Como Usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI: Figura 1 - Projeto de App .NET MAUI

  • Escolha um nome de projeto adequado e configure as configurações do projeto.

Como Usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI: Figura 2 - Configuração do Projeto

  • Certifique-se de ter os SDKs necessários para Android e iOS instalados para o desenvolvimento de dispositivos de plataforma alvo.

2. Instalando a Biblioteca IronOCR

  • Clique com o botão direito na sua Solução no Visual Studio.
  • Selecione "Gerenciar Pacotes NuGet para Solução" e na aba Procurar, procure por "IronOCR".

Como Usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI: Figura 3 - Pacote NuGet do IronOCR

  • Instale a biblioteca IronOCR em seu projeto.

3. Projetando a IU

Vamos começar projetando o layout do nosso MainPage.xaml. Vamos criar um layout simples com um controle de imagem para exibir a foto capturada, um botão Capturar para tirar fotos, e um Rótulo para exibir o texto extraído.

Aqui está o código XAML para 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>
XML

Neste layout:

  • Usamos um VerticalStackLayout para empilhar os controles verticalmente.
  • O controle Image chamado cameraPreview é usado para exibir a foto capturada.
  • O controle Button aciona o manipulador de eventos OnCaptureClicked quando clicado.
  • O controle Label chamado textLabel é usado para exibir o texto extraído.

Saída

Como Usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI: Figura 4 - Saída do MainPage.xaml

4. Implementando Funcionalidade de Digitalização de Documentos

Para integrar a funcionalidade de extração de texto em nosso aplicativo de Digitalização de Documentos .NET MAUI, seguiremos estas etapas:

  1. Utilizar a API da Câmera: Aproveitar a API da câmera fornecida pelo .NET MAUI para capturar arquivos de imagem diretamente dentro do seu aplicativo.
  2. Passar Imagem para o IronOCR: Uma vez capturada uma imagem, passá-la para o IronOCR para extração de texto, utilizando sua funcionalidade robusta.
  3. Exibir Texto Extraído: Exibir o texto extraído na área designada na interface do usuário do seu aplicativo para visualização do usuário.

Aqui está o trecho de código correspondente implementando estas etapas:

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

Explicação do código

Vamos detalhar o código passo a passo:

  • No arquivo MainPage.xaml.cs, o método OnCaptureClicked é definido para lidar com o evento de clique do botão Capturar.
  • A chave de licença IronOCR é configurada, necessária para usar a biblioteca IronOCR. Substitua "YOUR-LICENSE-KEY-HERE" pela sua chave de licença real.
  • As permissões da câmera são solicitadas usando Permissions.RequestAsync() para garantir que o aplicativo possa acessar a câmera do dispositivo.
  • MediaPicker.CapturePhotoAsync() é chamado para tirar uma foto usando a câmera. Se bem-sucedida, a foto é exibida no controle de Imagem cameraPreview.
  • Um fluxo da foto capturada é aberto e usado como entrada para o IronOCR, criando uma instância de IronTesseract, carregando o fluxo de imagem em um objeto OcrInput e chamando o método Read para realizar o OCR.
  • O texto extraído é exibido no controle textLabel se bem-sucedido. Se nenhum texto for detectado, uma mensagem de erro é exibida usando DisplayAlert.

Para maior exploração do IronOCR e exemplos de código adicionais, visite esta página de exemplos de código.

5. Testando o Aplicativo de Scanner de Documentos

  • Execute o aplicativo em várias plataformas (Android, iOS e Windows) para garantir a compatibilidade entre plataformas.
  • Teste diferentes cenários, como digitalizar documentos com várias fontes, tamanhos e orientações.
  • Verifique se o texto extraído está preciso e exibido corretamente na UI.

Saída - Documento Digitalizado sem Texto

Como Usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI: Figura 5 - Saída de Criação de PDF Escaneado

Saída - Documento Digitalizado com Texto

Como Usar um SDK de Scanner de Documentos em um Aplicativo .NET MAUI: Figura 6 - Documentação Escaneada

Conclusão

Ao seguir este tutorial, você aprendeu como usar o SDK de scanner de documentos do IronOCR dentro do .NET MAUI. Aplicativos de digitalização de documentos têm inúmeras aplicações práticas, desde digitalizar documentos em papel até extrair informações armazenadas em recibos e faturas. Usando as poderosas capacidades do IronOCR e a flexibilidade do .NET MAUI, você pode construir aplicativos de scanner de documentos ricos em recursos que atendem a vários casos de uso. Experimente diferentes funcionalidades, explore bibliotecas adicionais e continue aprimorando suas habilidades para criar aplicativos ainda mais impressionantes.

Para mais informações detalhadas sobre as capacidades do IronOCR, por favor, visite esta página de documentação.

IronOCR fornece uma avaliação gratuita para testar sua funcionalidade completa em modo comercial. Sua licença perpétua lite começa em $799. Baixe a biblioteca na página de download e experimente.

Perguntas frequentes

Como posso criar um aplicativo de digitalização de documentos usando .NET MAUI?

Você pode criar um aplicativo de digitalização de documentos usando o .NET MAUI, aproveitando o IronOCR para reconhecimento óptico de caracteres. Comece instalando o IronOCR por meio do Gerenciador de Pacotes NuGet no Visual Studio e, em seguida, use o .NET MAUI para projetar a interface do usuário do seu aplicativo. Implemente a funcionalidade de digitalização usando o método Read do IronTesseract.

Quais são os benefícios de usar o IronOCR em um aplicativo de digitalização de documentos?

O IronOCR oferece alta precisão no reconhecimento de texto, suporte a vários idiomas e compatibilidade com diversos formatos de arquivo. Ele também oferece pré-processamento de imagens, desempenho rápido e integração perfeita com aplicativos .NET, tornando-o uma escolha robusta para um aplicativo de digitalização de documentos.

Como faço para instalar o IronOCR em um projeto .NET MAUI?

Para instalar o IronOCR em um projeto .NET MAUI, abra o Visual Studio e use o Gerenciador de Pacotes NuGet para pesquisar por 'IronOCR'. Adicione o pacote ao seu projeto para começar a usar suas funcionalidades de OCR.

Quais são as etapas envolvidas na captura e no processamento de imagens em um aplicativo de digitalização de documentos?

O processo envolve o uso do MediaPicker para capturar imagens, convertê-las para um formato de fluxo e, em seguida, usar o IronTesseract do IronOCR para realizar a extração de texto. O texto extraído pode ser exibido na interface do usuário do aplicativo.

Quais formatos de arquivo são suportados pelo IronOCR para processamento de OCR?

O IronOCR suporta uma ampla variedade de formatos de arquivo, incluindo TIFF, JPEG, PNG e PDF, permitindo recursos versáteis de digitalização de documentos e extração de texto.

O IronOCR suporta OCR em vários idiomas?

Sim, o IronOCR suporta OCR em mais de 125 idiomas, tornando-o adequado para aplicações que exigem reconhecimento de texto em diversos contextos linguísticos.

Como o .NET MAUI facilita o desenvolvimento multiplataforma?

O .NET MAUI permite que os desenvolvedores criem aplicativos móveis multiplataforma com uma única base de código, possibilitando a implantação perfeita em dispositivos Android, iOS e Windows.

Quais são os pré-requisitos para desenvolver um aplicativo de digitalização de documentos com .NET MAUI?

Os pré-requisitos incluem conhecimento básico de programação em C#, Visual Studio 2022 com o pacote .NET MAUI e a biblioteca IronOCR instalada via NuGet.

Como posso testar a compatibilidade do meu aplicativo de digitalização de documentos em diferentes plataformas?

Você pode testar seu aplicativo de digitalização de documentos em diversas plataformas, implantando-o em dispositivos Android, iOS e Windows para garantir a funcionalidade e a precisão na extração de texto, aproveitando os recursos multiplataforma do .NET MAUI.

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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me