Como ler e escanear códigos de barras em C# usando .NET MAUI

Scanner de Código de Barras .NET MAUI

This article was translated from English: Does it need improvement?
Translated
View the article in English

Introdução

.NET MAUI (.NET Multi-platform App UI) é um framework multiplataforma para criar aplicações multiplataforma em uma única base de código. Por exemplo, você pode facilmente criar aplicações para Microsoft Windows, iOS e Android em um único projeto. O que o diferencia de outras plataformas, frameworks e bibliotecas é a forma como permite que a comunidade de desenvolvedores use os controles nativos em seus projetos e fornece componentes extras. Como resultado, os desenvolvedores podem usar esses componentes e serviços pré-fabricados para construir aplicações mais rapidamente sem escrever todos os aspectos do código do zero.

Neste artigo, explicaremos como integrar o IronBarcode em um aplicativo Windows .NET MAUI para escanear um código de barras ou QR code.

IronBarcode: Biblioteca C# para Código de Barras

Para ler códigos de barras em nossa aplicação, usaremos a biblioteca .NET IronBarcode. Ela fornece uma API robusta e simples para leitura de códigos de barras, permitindo o desenvolvimento sem complicações ou conhecimento específico na área de códigos de barras. Pode ser facilmente instalada com o gerenciador de pacotes NuGet.

IronBarcode suporta uma multitude de formatos de código de barras para leitura, incluindo Code 39, Code 128, PDF417, entre muitos outros. Você pode ler a partir de uma variedade de formatos de dados, como arquivos de imagem, fluxos de memória e PDFs.

Etapas para Ler Códigos de Barra em um Aplicativo .NET MAUI

Siga estas etapas para ler um código de barras em um aplicativo .NET MAUI.

Pré-requisitos

  1. Visual Studio 2022
  2. Um projeto .NET MAUI no Visual Studio

Instalar a Biblioteca IronBarcode

Podemos instalar a biblioteca IronBarcode usando o NuGet Package Manager Console. Para abrir este console no Visual Studio, navegue para Tools > NuGet Package Manager > Package Manager Console. Em seguida, escreva o seguinte comando no console:

Install-Package BarCode

Este comando do console irá baixar a versão mais recente da biblioteca IronBarcode no projeto MAUI. Alternativamente, você também pode procurar a versão mais recente do pacote NuGet no site do NuGet.

Front-End

A primeira etapa será criar o design do front-end. Para isso, vamos criar um layout que consiste em dois botões, uma área de texto e uma caixa de imagem. Um botão será usado para selecionar o código de barras, e outro irá copiar o texto do código de barras. A caixa de imagem mostrará a imagem selecionada.

Substitua o conteúdo do arquivo MainPage.xaml pelo seguinte:

<?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="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor
                x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </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"
             x:Class="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor
                x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

Todos os elementos estão em uma pilha vertical com a posição central. Você pode alterá-lo conforme sua preferência.

Digitalização de Código de Barras usando IronBarcode

Esta seção descreve o código para digitalizar códigos de barras usando a biblioteca IronBarcode. Primeiro, usaremos um FilePicker para selecionar o arquivo e especificar o tipo de arquivo para a imagem. Depois disso, usaremos a propriedade FullPath para recuperar o caminho do arquivo de imagem e, em seguida, definir a origem da caixa de imagem para o valor FullPath. Finalmente, usaremos o valor path na função Read do BarcodeReader para recuperar o texto.

private async void SelectBarcode(object sender, EventArgs e)
{
    // Use FilePicker to allow the user to select an image file.
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image file.
    var imageSource = images.FullPath.ToString();

    // Set the source of the Image view to the selected image's path.
    barcodeImage.Source = imageSource;

    // Use IronBarcode to read the barcode from the image file and get the first result.
    var result = BarcodeReader.Read(imageSource).First().Text;

    // Display the read result in the Editor.
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    // Use FilePicker to allow the user to select an image file.
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
        PickerTitle = "Pick image",
        FileTypes = FilePickerFileType.Images
    });

    // Get the full path of the selected image file.
    var imageSource = images.FullPath.ToString();

    // Set the source of the Image view to the selected image's path.
    barcodeImage.Source = imageSource;

    // Use IronBarcode to read the barcode from the image file and get the first result.
    var result = BarcodeReader.Read(imageSource).First().Text;

    // Display the read result in the Editor.
    outputText.Text = result;
}
$vbLabelText   $csharpLabel

O código mostrado abaixo será usado para copiar o texto do editor de texto e exibir uma mensagem de alerta para o usuário que o texto foi copiado.

private async void CopyEditorText(object sender, EventArgs e)
{
    // Copy the text from the Editor to the clipboard.
    await Clipboard.SetTextAsync(outputText.Text);

    // Show a success message to the user.
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText(object sender, EventArgs e)
{
    // Copy the text from the Editor to the clipboard.
    await Clipboard.SetTextAsync(outputText.Text);

    // Show a success message to the user.
    await DisplayAlert("Success", "Text is copied!", "OK");
}
$vbLabelText   $csharpLabel

You can find the project source code in this article on GitHub.

Saída

Após executar o projeto, você verá a seguinte saída. A imagem não está sendo mostrada porque ainda não foi selecionada.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 1: Saída quando nenhuma imagem é selecionada

Saída quando nenhuma imagem é selecionada

Quando o código de barras for selecionado, ele aparecerá como na captura de tela abaixo, e o texto de saída do Código QR será mostrado no editor.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 2: Saída após a imagem ser selecionada

Saída após a imagem ser selecionada

Clicar no botão Copiar acionará a janela de alerta mencionada anteriormente.

.NET MAUI Barcode Scanner Tutorial Using IronBarcode - Figure 3: Alerta de cópia

Alerta de cópia

Conclusão

Neste artigo, explicamos como podemos ler códigos de barras em um aplicativo .NET MAUI usando o IronBarcode. Como leitor de código QR, o IronBarcode funciona muito bem—ele fornece a saída exata como esperado. Além disso, ele pode ler códigos de barras que são difíceis de ler. Você também pode criar e personalizar códigos de barras usando diferentes fontes. Obtenha mais posts de tutoriais sobre IronBarcode neste link.

IronBarcode deve ser licenciado para uso em desenvolvimento e comercial. Você pode encontrar mais informações sobre licenciamento aqui.

Perguntas frequentes

Como posso ler códigos QR em um aplicativo .NET MAUI?

Você pode ler códigos QR em um aplicativo .NET MAUI usando a biblioteca IronBarcode. Instale a biblioteca através do Gerenciador de Pacotes NuGet no Visual Studio e use o método BarcodeReader.Read para extrair o texto de um arquivo de imagem selecionado.

Qual é o processo para instalar o IronBarcode em um projeto .NET MAUI?

Para instalar o IronBarcode em um projeto .NET MAUI, abra o Console do Gerenciador de Pacotes NuGet no Visual Studio e execute o comando Install-Package Barcode para baixar e instalar a biblioteca.

Quais formatos de código de barras podem ser lidos usando a biblioteca IronBarcode?

O IronBarcode suporta diversos formatos de código de barras, incluindo códigos QR, Code 39, Code 128, PDF417 e muitos outros, permitindo recursos versáteis de leitura de código de barras em seus aplicativos.

Como posso projetar a interface para um aplicativo de leitor de código de barras em .NET MAUI?

Em .NET MAUI, a interface de um aplicativo de leitor de código de barras pode ser projetada usando XAML. Normalmente, ela inclui um layout com botões, uma área de texto e uma caixa de imagem, que podem ser definidos no arquivo MainPage.xaml .

Como posso copiar o texto do código de barras digitalizado para a área de transferência em um aplicativo .NET MAUI?

Utilize o método Clipboard.SetTextAsync em seu aplicativo .NET MAUI para copiar o texto do código de barras escaneado para a área de transferência. Esse método pode ser acionado por um clique de botão, exibindo um alerta para confirmar a ação.

É possível personalizar a aparência dos códigos de barras no .NET MAUI com o IronBarcode?

Sim, o IronBarcode permite a personalização da aparência dos códigos de barras, oferecendo opções para alterar fontes, cores e estilos, possibilitando a criação de códigos de barras visualmente personalizados.

Preciso de uma licença para usar o IronBarcode em aplicações comerciais?

Sim, é necessária uma licença para usar o IronBarcode tanto para desenvolvimento quanto para fins comerciais. Os detalhes e opções de licenciamento estão disponíveis no site do IronBarcode.

Onde posso acessar o código-fonte do tutorial do leitor de código de barras MAUI for .NET?

O código-fonte do tutorial do leitor de código de barras MAUI em .NET está disponível no GitHub. Um link para o repositório é fornecido no artigo para facilitar o acesso.

Como o IronBarcode aprimora a leitura de códigos de barras em aplicativos .NET MAUI?

O IronBarcode aprimora a leitura de códigos de barras em aplicativos .NET MAUI, fornecendo uma API robusta que suporta múltiplos formatos de código de barras e integração perfeita com projetos .NET MAUI, garantindo uma leitura eficiente e precisa dos códigos de barras.

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 2,108,094 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package BarCode
executar um exemplo Veja seu fio se transformar em um código de barras.