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

Como criar um SDK de leitor de código de barras em .NET?

O IronBarcode permite que desenvolvedores .NET adicionem capacidades de leitura de códigos de barras a seus aplicativos com código mínimo. Ele suporta múltiplos formatos, incluindo códigos de barras 1D e 2D, várias fontes de imagem, e oferece alta precisão com detecção baseada em aprendizado de máquina para ambientes de produção.

A digitalização de códigos de barras é crucial para muitos aplicativos, desde o gerenciamento de inventário até o varejo e a logística. Ao integrar a leitura de códigos de barras em seus aplicativos .NET, você pode simplificar a captura de dados, automatizar fluxos de trabalho e melhorar a eficiência. Ao avaliar soluções de leitura de códigos de barras, considere fatores como formatos suportados, velocidade de processamento e complexidade de integração. A biblioteca IronBarcode oferece total compatibilidade multiplataforma com recursos excepcionais de tolerância a falhas.

O IronBarcode é uma biblioteca .NET eficaz que simplifica o trabalho com códigos de barras. Com esta ferramenta, você pode ler códigos de barras de imagens, fluxos e arquivos PDF, bem como gerar códigos QR usando o Gerador de Código QR em C#. Este artigo mostra como integrar a digitalização de códigos de barras ao seu aplicativo .NET, focando na criação de uma integração de API ou Aplicativo Web para expor a funcionalidade de digitalização de códigos de barras. A biblioteca suporta vários formatos de códigos de barras incluindo 1D e 2D, com capacidades avançadas de geração e opções de estilização.

Quais são os Melhores Casos de Uso para Integração com IronBarcode?

O IronBarcode se destaca nesses cenários:

Como Crio um SDK de Leitor de Código de Barras em .NET?

Para criar um leitor de código de barras que pode ser exposto como um serviço em seu aplicativo, integre o IronBarcode em uma API REST ou Aplicativo Web. A escolha da arquitetura depende das suas necessidades de processamento: processamento de imagem única para digitalizações ocasionais, processamento em lote para fluxos de trabalho de documentos, ou processamento de fluxo para aplicativos de digitalização contínua. Aqui está um exemplo usando ASP.NET Core com devidas considerações de segurança de thread. Os recursos de leitura da biblioteca incluem filtros de criação de imagem avançados para precisão ótima.

  1. Instale a biblioteca .NET para leitura de códigos de barras em C# usando pacotes NuGet
  2. Crie uma classe de digitalização de código de barras reutilizável com manipulação de erros adequada
  3. Desenvolva métodos para leitura de códigos de barras de diferentes fontes
  4. Integre a leitura de imagens de código de barras em seu aplicativo usando configurações aprimoradas
  5. Teste e melhore o desempenho com opções de velocidade de leitura

O Que Eu Preciso Antes de Começar?

Se ainda não o fez, baixe o IronBarcode para o seu projeto. Certifique-se de ter a chave de licença adequada para o uso pretendido. Observe que expor a funcionalidade do IronBarcode por meio de uma API pública ou revendê-la como um serviço independente exige licenciamento adicional (SDK, OEM ou SaaS). Certifique-se de entender as opções de licenciamento antes de prosseguir. Para ambientes de desenvolvimento, você pode começar com a versão de teste gratuita e aplicar sua chave de licença quando estiver pronto para produção. Revise o change log para as atualizações mais recentes e marcos.

Para desempenho ideal, considere seu ambiente de implantação. IronBarcode oferece suporte à compatibilidade entre plataformas, incluindo Windows, Linux, macOS, Docker, e plataformas de nuvem como Azure e AWS Lambda. Desenvolvedores móveis podem usar suporte para Android e iOS através da integração Blazor. Para aplicativos .NET MAUI, siga o tutorial de leitor de scanner de código de barras.

Como Eu Crio Uma Classe de Scanner de Código de Barras?

Depois de configurar o IronBarcode e instalá-lo em seu projeto, você pode criar uma classe de scanner de código de barras reutilizável que integra a funcionalidade do IronBarcode e a expõe como um ponto de extremidade de API. A implementação inclui otimizações de desempenho e correção de imagem para cenários desafiadores com correção de orientação. Considere implementar regiões de corte para processamento mais rápido quando as localizações de códigos de barras são previsíveis:

using IronBarCode;
using System.IO;
using System.Collections.Concurrent;
using System.Threading.Tasks;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();

        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };

                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };

                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }

        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}
using IronBarCode;
using System.IO;
using System.Collections.Concurrent;
using System.Threading.Tasks;

namespace BarcodeIntegration
{
    public class BarcodeScanner
    {
        private static readonly ConcurrentDictionary<string, BarcodeReaderOptions> _optionsCache = new();

        static BarcodeScanner()
        {
            // Set the license key
            IronBarCode.License.LicenseKey = "Your-License-Key";
        }

        // Method to read a barcode from an image file with performance optimization
        public string ReadBarcodeFromImage(string imagePath, BarcodeReadingSpeed speed = BarcodeReadingSpeed.Balanced)
        {
            try
            {
                var options = GetCachedOptions(speed);
                // Try to read the barcode from the given image path
                var barcode = BarcodeReader.Read(imagePath, options);
                return barcode?.ToString() ?? "No Barcode Found"; // Return the barcode string or indicate no barcode was found
            }
            catch (Exception ex)
            {
                // Return an error message if an exception occurs
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a stream (e.g., file upload or memory stream)
        public async Task<string> ReadBarcodeFromStreamAsync(Stream inputStream)
        {
            try
            {
                var options = GetCachedOptions(BarcodeReadingSpeed.Detailed);
                // Enable image correction for better accuracy
                options.ImageFilters = new[] { 
                    new SharpenFilter(), 
                    new ContrastFilter() 
                };

                // Try to read the barcode from the given stream
                var barcode = await Task.Run(() => BarcodeReader.Read(inputStream, options));
                return barcode?.ToString() ?? "No barcode found";
            }
            catch (Exception ex)
            {
                return $"Error reading barcode: {ex.Message}";
            }
        }

        // Method to read a barcode from a PDF file with batch processing support
        public async Task<List<string>> ReadBarcodesFromPdfAsync(string filePath)
        {
            try
            {
                var options = new BarcodeReaderOptions
                {
                    ExpectMultipleBarcodes = true,
                    Speed = BarcodeReadingSpeed.Detailed
                };

                // Try to read barcodes from the given PDF file path
                var barcodes = await Task.Run(() => BarcodeReader.ReadPdf(filePath, options));
                return barcodes.Select(b => b.ToString()).ToList();
            }
            catch (Exception ex)
            {
                return new List<string> { $"Error reading barcode: {ex.Message}" };
            }
        }

        // Cache reader options for performance
        private BarcodeReaderOptions GetCachedOptions(BarcodeReadingSpeed speed)
        {
            return _optionsCache.GetOrAdd(speed.ToString(), _ => new BarcodeReaderOptions
            {
                Speed = speed,
                AutoRotate = true,
                RemoveFalsePositive = true
            });
        }
    }
}
$vbLabelText   $csharpLabel

Esta classe melhorada BarcodeScanner inclui otimizações de desempenho através do armazenamento em cache de opções, processamento assíncrono para melhor escalabilidade, e filtros de imagem para maior precisão. A implementação segue princípios SOLID e fornece tratamento de erros pronto para produção. Para funcionalidade adicional, considere usar integração com System.Drawing ou exportar como streams. Você também pode criar imagens de código de barras com estilos personalizados de código de barras e estilização de QR code.

Quais Métodos Devo Usar para Ler Diferentes Fontes de Código de Barras?

Cada método é aprimorado para casos de uso específicos e requisitos de processamento:

  • ReadBarcodeFromImage(string imagePath): Lê um código de barras de um arquivo de imagem.
  • ReadBarcodeFromStream(Stream inputStream): Lê um código de barras de um fluxo de entrada (por exemplo, upload de arquivo ou fluxo de memória).
  • ReadBarcodeFromPdf(string filePath): Lê um código de barras de um arquivo PDF.

Para cenários de alto volume, considere usar regiões de corte para melhorar a velocidade de processamento em até 5x quando as localizações de códigos de barras são previsíveis. Você também pode criar imagens de códigos de barras ou salvar códigos de barras em vários formatos. A biblioteca suporta leitura a partir de objetos System.Drawing e pode exportar códigos de barras como HTML ou documentos PDF.

Como Eu Exponho a Leitura de Código de Barras Via uma API REST?

Para permitir que aplicativos externos usem sua funcionalidade de escaneamento de código de barras, exponha-a como uma API REST usando ASP.NET Core. A implementação inclui tratamento adequado de erros, validação e suporte para vários formatos de entrada. Você também pode gerar códigos de barras com o Gerador de Imagem de Código de Barras em C# ou explorar exemplos de início rápido de código de barras. Ao processar PDFs, considere estampar códigos de barras em PDFs existentes para rastreamento de documentos:

using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });

        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });

        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);

            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }

    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();

        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }

        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);

            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);

            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));

            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}
using Microsoft.AspNetCore.Mvc;
using System.IO;
using Microsoft.AspNetCore.Http;
using BarcodeIntegration;

[ApiController]
[Route("api/barcode")]
public class BarcodeController : ControllerBase
{
    private readonly BarcodeScanner _barcodeScanner;
    private readonly ILogger<BarcodeController> _logger;

    public BarcodeController(ILogger<BarcodeController> logger)
    {
        _barcodeScanner = new BarcodeScanner();
        _logger = logger;
    }

    // POST endpoint to read barcode from an uploaded image
    [HttpPost("read-from-image")]
    public async Task<IActionResult> ReadFromImage(IFormFile file)
    {
        if (file == null || file.Length == 0)
            return BadRequest(new { Error = "No file uploaded" });

        // Validate file type
        var allowedTypes = new[] { "image/jpeg", "image/png", "image/gif", "image/bmp", "image/tiff" };
        if (!allowedTypes.Contains(file.ContentType.ToLower()))
            return BadRequest(new { Error = "Unsupported file type" });

        try
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);

            _logger.LogInformation($"Barcode read successfully from {file.FileName}");
            return Ok(new { Barcode = result, FileName = file.FileName });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error processing barcode");
            return StatusCode(500, new { Error = "Internal server error" });
        }
    }

    // POST endpoint for batch processing
    [HttpPost("read-batch")]
    public async Task<IActionResult> ReadBatch(List<IFormFile> files)
    {
        var results = new List<object>();

        foreach (var file in files)
        {
            using var stream = file.OpenReadStream();
            var result = await _barcodeScanner.ReadBarcodeFromStreamAsync(stream);
            results.Add(new { FileName = file.FileName, Barcode = result });
        }

        return Ok(new { Results = results, Count = results.Count });
    }

    // POST endpoint to generate barcode from data
    [HttpPost("generate")]
    public IActionResult GenerateBarcode([FromBody] BarcodeGenerationRequest request)
    {
        try
        {
            // Create barcode with specified data and format
            var barcode = BarcodeWriter.CreateBarcode(request.Data, request.Format ?? BarcodeWriterEncoding.Code128);

            // Apply custom styling if requested
            if (request.Width.HasValue && request.Height.HasValue)
                barcode.ResizeTo(request.Width.Value, request.Height.Value);

            if (!string.IsNullOrEmpty(request.ForegroundColor))
                barcode.ChangeBarCodeColor(System.Drawing.ColorTranslator.FromHtml(request.ForegroundColor));

            // Return as base64 encoded image
            using var ms = barcode.ToStream();
            var bytes = ms.ToArray();
            return Ok(new { 
                Image = Convert.ToBase64String(bytes),
                Format = request.Format?.ToString() ?? "Code128",
                Data = request.Data 
            });
        }
        catch (Exception ex)
        {
            _logger.LogError(ex, "Error generating barcode");
            return BadRequest(new { Error = "Failed to generate barcode" });
        }
    }
}

public class BarcodeGenerationRequest
{
    public string Data { get; set; }
    public BarcodeWriterEncoding? Format { get; set; }
    public int? Width { get; set; }
    public int? Height { get; set; }
    public string ForegroundColor { get; set; }
}
$vbLabelText   $csharpLabel

Como a API Se Parece no Swagger UI?

Swagger UI mostrando a API BarcoderScannerSDK com dois endpoints POST para leitura de códigos de barras de imagens e PDFs, apresentando interface de upload de arquivo e opções de configuração de pedidos

Como é a Resposta da API?

Documentação da API mostrando uma solicitação POST bem-sucedida para um endpoint de leitura de código de barras que retorna 'Hello World!' com uma resposta de status 200 OK

Esta API expõe endpoints POST onde você pode fazer upload de imagens de códigos de barras, e a API retorna os dados do código de barras. A implementação inclui validação adequada, tratamento de erros e registro para uso em produção. Para aplicações móveis, considere adicionar endpoints aprimorados para tamanhos de imagem menores e tempos de resposta mais rápidos. Você também pode criar códigos de barras a partir de dados ou exportá-los como HTML ou PDF. Para requisitos de alto contraste, gere imagens de código de barras 1-BPP.## Quais Recursos Avançados Posso Adicionar?

Para melhorar ainda mais seu SDK, considere implementar estes recursos prontos para produção usando a Referência de API completa do IronBarcode. Explore a visão geral dos recursos e verifique demos para implementações práticas:

Como Eu Ofereço Suporte a Múltiplos Tipos de Código de Barras?

IronBarcode suporta leitura de múltiplos códigos de barras simultaneamente. Você pode configurar seu SDK para aceitar vários códigos de barras de uma vez com filtragem de formato específica. A biblioteca suporta escrita de códigos de barras Unicode, incluindo caracteres chineses e árabes. Para aplicações especializadas, explore a leitura de Code 39 e criação de QR codes com estilo personalizado:

public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };

        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;

        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));

        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}
public async Task<List<BarcodeResult>> ReadMultipleBarcodesAsync(string imagePath, BarcodeEncoding[] expectedTypes = null)
{
    try
    {
        var options = new BarcodeReaderOptions()
        {
            ExpectMultipleBarcodes = true,
            ExpectBarcodeTypes = expectedTypes ?? BarcodeEncoding.All,
            Speed = BarcodeReadingSpeed.Detailed,
            MaxParallelThreads = Environment.ProcessorCount,
            Multithreaded = true
        };

        // Apply confidence threshold for machine learning accuracy
        options.Confidence = Confidence.High;

        var results = await Task.Run(() => BarcodeReader.Read(imagePath, options));

        return results.Select(barcode => new BarcodeResult
        {
            Value = barcode.ToString(),
            Format = barcode.BarcodeType.ToString(),
            Confidence = barcode.Confidence,
            Position = barcode.Rect
        }).ToList();
    }
    catch (Exception ex)
    {
        _logger.LogError(ex, "Error reading multiple barcodes");
        throw;
    }
}
$vbLabelText   $csharpLabel

Que outras melhorias devo considerar?

Para implantações em produção, considere implementar limiares de confiança para reduzir falsos positivos e garantir a precisão dos dados. A detecção baseada em aprendizagem de máquina pode ser ajustada para o seu caso de uso específico. Ao criar pacotes de implantação, siga o guia do instalador MSI e resolva quaisquer problemas de DLL ausentes. Para implantações AWS, esteja ciente de possíveis problemas de runtime. Considere criar códigos de barras com vários formatos de dados de saída e explore tutoriais de leitura de códigos de barras.

Quais considerações de licenciamento devo estar ciente?

Como mencionado anteriormente, o SDK do IronBarcode é destinado à integração em suas aplicações internas, e expô-lo através de uma API requer licenciamento adicional. Você deve garantir o licenciamento necessário (SDK, OEM ou SaaS) antes de expor o IronBarcode como parte de um serviço, como uma API pública. Para implantações empresariais, considere as extensões de licença disponíveis para assentos adicionais ou melhorias no suporte. Revise as opções de upgrade para escalar sua implantação.

Não revenda o IronBarcode como um SDK independente ou o exponha por meio de uma API voltada para o público sem assegurar que seu licenciamento cobre este uso. Para aplicações web, pode ser necessário configurar a chave de licença no web.config para a ativação adequada. Mantenha-se informado sobre as atualizações CVE de segurança e siga as melhores práticas para exceções de cópia de runtime. Para problemas técnicos, considere enviar uma solicitação de engenharia. Confira recursos sobre escrita de códigos de barras em Unicode e explore o tutorial de leitura de códigos de barras.

Por que devo tentar o IronBarcode hoje?

Experimente as novas capacidades do IronBarcode. Experimente nosso teste gratuito e descubra a criação, leitura e edição de código de barras fluida para suas aplicações .NET. Com recursos avançados, desempenho excepcional e uma interface amigável, o IronBarcode é a solução definitiva para todas as suas necessidades de código de barras. Explore nossa documentação completa, revise exemplos de código e veja demonstrações ao vivo para entender todas as capacidades. Confira tutoriais sobre leitura de códigos de barras e explore o suporte para MicroQR e rMQR. Saiba mais sobre as opções de pacotes NuGet para diferentes cenários de implantação. Você também pode explorar a Documentação do IronBarcode para mais informações sobre nossa solução completa de código de barras. Comece seu teste gratuito hoje mesmo e melhore seus projetos.

Perguntas frequentes

Como posso integrar um leitor de código de barras em um aplicativo .NET?

Você pode integrar um leitor de código de barras em um aplicativo .NET usando a biblioteca IronBarcode. Primeiro, instale o IronBarcode, depois crie uma classe para leitura de código de barras e implemente métodos para ler códigos de barras de imagens, fluxos de dados e PDFs. Por fim, teste e otimize sua configuração.

Como faço para expor a funcionalidade de leitura de código de barras como uma API REST?

Para expor a funcionalidade de leitura de código de barras como uma API REST, utilize o ASP.NET Core para criar uma aplicação web. Incorpore a biblioteca IronBarcode, desenvolva uma classe BarcodeScanner e defina endpoints de API que leiam códigos de barras utilizando métodos como ReadBarcodeFromImage e ReadBarcodeFromStream .

Quais tipos de código de barras podem ser lidos usando uma biblioteca de código de barras .NET?

Uma biblioteca de código de barras .NET, como o IronBarcode, pode ler vários tipos de código de barras, incluindo códigos QR, Code 128, UPC e EAN. Você pode configurar a biblioteca para detectar vários tipos de código de barras simultaneamente, definindo os parâmetros de detecção.

Como posso lidar com erros ao ler códigos de barras em .NET?

O tratamento de erros na leitura de códigos de barras pode ser alcançado implementando um sistema robusto de tratamento de erros em seus métodos de leitura, utilizando o IronBarcode. Certifique-se de capturar exceções e fornecer feedback significativo ou mecanismos de repetição para melhorar a confiabilidade do processo de leitura de códigos de barras.

Quais são os requisitos de licenciamento para usar uma biblioteca de código de barras .NET em uma API pública?

Ao usar o IronBarcode em uma API pública, você deve garantir o licenciamento adequado. Isso inclui a obtenção de licenças SDK, OEM ou SaaS, pois expor a funcionalidade da biblioteca como um serviço independente ou API pública requer permissões adicionais.

Posso processar em lote várias leituras de código de barras usando uma biblioteca .NET?

Sim, você pode processar em lote várias leituras de código de barras usando o IronBarcode. A biblioteca permite ler vários códigos de barras em uma única operação, o que pode ser particularmente útil para processar grandes conjuntos de imagens ou documentos de forma eficiente.

Existe alguma versão de avaliação disponível para uma biblioteca de código de barras .NET?

Sim, o IronBarcode oferece uma versão de avaliação gratuita que permite explorar seus recursos de geração, leitura e edição de códigos de barras em aplicativos .NET. Essa avaliação pode ajudá-lo a testar a biblioteca antes de decidir comprá-la.

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