Escolhendo uma Simbologia de Código de Barras

Escolhendo uma Simbologia de Código de Barras

Escolhendo uma Simbologia de Código de Barras

Aspose.BarCode FOSS para Python suporta sete simbologias. Cada uma é adequada a diferentes tipos de dados, ambientes de leitura e padrões da indústria. Este guia aborda as características de cada simbologia e quando utilizá-la.


Visão Geral da Simbologia

SymbologyTipoConjunto de CaracteresCapacidade de DadosDígito Verificador
Code 1281DASCII completo (128 caracteres)Comprimento variávelAutomático (mod-103)
Code 391DA–Z, 0–9 e 7 caracteres especiais (base); ASCII completo (estendido)Comprimento variávelOptional
EAN-131DSomente numérico (0–9)12 dígitos de dados + 1 dígito de verificaçãoAutomatic
EAN-81DSomente numérico (0–9)7 dígitos de dados + 1 dígito de verificaçãoAutomatic
QR Code2DNumérico, alfanumérico, byte e KanjiAté 7,089 numérico / 4,296 alfanuméricoAutomático (Reed-Solomon)
UPC-A1DSomente numérico (0–9)11 dígitos de dados + 1 dígito de verificaçãoAutomatic
UPC-E1DApenas numérico (0–9)6 dígitos de dados (compactado UPC-A)Automatic

Code 128

Code 128 codifica o conjunto completo de caracteres ASCII com alta densidade. Ele usa três conjuntos de caracteres (A, B, C) e alterna entre eles automaticamente no modo AUTO.

Melhor para: etiquetas de inventário, etiquetas de envio, dados alfanuméricos de uso geral.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code128Options, Code128EncodeMode

service = BarcodeService()

# Auto mode — library selects optimal character sets
barcode = service.generate("code128", "INV-2026-00451")

# Force Code C for all-numeric data (higher density)
barcode = service.generate(
    "code128", "123456789012",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = barcode.to_svg()

Code 39

Code 39 suporta letras maiúsculas, dígitos e 7 caracteres especiais no modo base. Ative full_ascii=True para codificar toda a faixa ASCII. Um dígito de verificação opcional pode ser adicionado via add_check_digit.

Melhor para: etiquetas industriais, identificadores governamentais/militares (LOGMARS) e ambientes onde a simplicidade é mais importante que a densidade.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code39Options

service = BarcodeService()

# Base mode — uppercase + digits + special chars
barcode = service.generate("code39", "PART-A1234")

# Full ASCII mode with check digit
barcode = service.generate(
    "code39", "Part-a1234",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = barcode.to_svg()

EAN-13

EAN-13 é o código de barras padrão para produtos de varejo fora da América do Norte. Ele codifica exatamente 12 dígitos de dados; o 13º dígito é um dígito de verificação calculado automaticamente. Use Ean13Options para controlar o comportamento de entrada do dígito de verificação.

Melhor para: identificação de produtos de varejo, itens de comércio internacional (GTIN-13).

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options

service = BarcodeService()

# 12 data digits — check digit computed
barcode = service.generate("ean13", "590123412345")

# With rendering options for human-readable text
from aspose_barcode_foss import RenderOptions
svg = barcode.to_svg(RenderOptions(show_text=True, scale=2.0))

EAN-8

EAN-8 é a versão compacta de EAN-13, usada em pequenos pacotes de varejo onde o espaço é limitado. Ela codifica 7 dígitos de dados mais 1 dígito de verificação.

Melhor para: pequenos produtos de varejo, itens com espaço de etiqueta limitado.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()

QR Code

QR Code é uma simbologia de matriz 2D que armazena grandes quantidades de dados em uma área pequena. Ela suporta quatro modos de codificação via QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE e KANJI. A correção de erros é configurável através de QrErrorCorrectionLevel (L, M, Q, H).

Ideal para: URLs, aplicativos móveis, materiais de marketing e qualquer caso de uso que exija alta capacidade de dados ou caracteres não ASCII.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

service = BarcodeService()

# Default settings
barcode = service.generate("qrcode", "https://example.com")

# High error correction for printed labels
barcode = service.generate(
    "qrcode", "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)
png = barcode.to_png()

UPC-A

UPC-A é o código de barras padrão para produtos de varejo na América do Norte. Ele codifica 11 dígitos de dados mais 1 dígito de verificação. UPC-A é um subconjunto de EAN-13 com um zero à esquerda.

Ideal para: identificação de produtos de varejo norte-americanos (GTIN-12).

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()

UPC-E

UPC-E é uma forma compactada de UPC-A para pequenos itens de varejo. Ele codifica 6 dígitos de dados suprimindo zeros da representação completa de UPC-A.

Melhor para: pequenos itens de varejo, cupons e etiquetas onde o espaço é limitado.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()

Guia de Decisão

Use esta tabela para selecionar a simbologia correta para sua aplicação:

Caso de UsoSimbologia RecomendadaReason
Inventário de armazémCode 128ASCII completo, alta densidade, comprimento variável
Rótulos militares/LOGMARSCode 39Ampla adoção em sistemas governamentais
Varejo internacionalEAN-13GTIN-13 padrão
Embalagem de varejo pequenaEAN-8 ou UPC-ETamanho físico compacto
Varejo norte-americanoUPC-AGTIN-12 padrão
URLs e links móveisQR CodeAlta capacidade, digitalização 2D
Marketing e impressãoQR CodeEscaneável por câmeras de telefone
Números de série totalmente numéricosCode 128 (Code C)Maior densidade para dados numéricos

Dicas e Melhores Práticas

  • Use Code 128 como padrão para etiquetas de uso geral — ele oferece a melhor relação densidade-compatibilidade entre simbologias 1D
  • Para produtos de varejo, use a simbologia exigida pelo seu mercado: EAN-13 para internacional, UPC-A para América do Norte
  • Defina QrErrorCorrectionLevel.H para códigos QR que serão impressos em etiquetas expostas a desgaste ou dano parcial
  • Sempre deixe a biblioteca calcular os dígitos de verificação automaticamente em vez de fornecê-los manualmente
  • Use show_text=True em RenderOptions para rótulos legíveis por humanos, de modo que os operadores possam verificar visualmente os dados escaneados

Problemas comuns

ProblemaCausaCorreção
InvalidInputError em EAN-13Caracteres não numéricos nos dadosEAN-13 aceita apenas dígitos 0–9
InvalidInputError em Code 39Letras minúsculas no modo baseDefinir Code39Options(full_ascii=True)
QR code muito grandeVersão muito baixa para o comprimento dos dadosDeixe a biblioteca selecionar automaticamente a versão, ou aumente QrOptions.version
UPC-E InvalidInputErrorOs dados não correspondem ao padrão de supressão de zerosVerifique o formato de UPC-E de 6 dígitos ou use UPC-A em vez disso

FAQ

Posso usar Code 128 para dados totalmente numéricos?

Sim. Code 128 Code C mode (Code128EncodeMode.CODE_C) está otimizado para dados totalmente numéricos, codificando pares de dígitos em um único caractere símbolo para densidade máxima.

Qual é a diferença entre EAN-13 e UPC-A?

UPC-A é um subconjunto de 12 dígitos de EAN-13. Um código UPC-A pode ser representado como um EAN-13 com zero à esquerda. Eles são funcionalmente compatíveis em sistemas de leitura no varejo.

Qual simbologia suporta a maior quantidade de dados?

QR Code suporta até 7,089 caracteres numéricos ou 4,296 caracteres alfanuméricos. Todas as simbologias 1D nesta biblioteca suportam dados de comprimento variável, mas QR Code tem a maior capacidade.

Posso misturar simbologias em uma única aplicação?

Sim. Crie uma instância de BarcodeService e chame generate() com nomes de simbologia diferentes para cada código de barras. O serviço resolve cada simbologia através do SymbologyRegistry.


Resumo do API Reference

Classe / MétodoDescrição
BarcodeService.generate(symbology, data, encode, render)Gere um código de barras para qualquer simbologia registrada
Code128OptionsOpções de codificação para Code 128 (modo de codificação, GS1, ECI)
Code128EncodeModeEnum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC
Code39OptionsOpções de codificação para Code 39 (ASCII completo, dígito de verificação)
Code39EncodeModeEnum: BASE, FULL_ASCII
Ean13OptionsOpções de codificação para EAN-13 (entrada de dígito de verificação)
Ean8OptionsOpções de codificação para EAN-8 (entrada de dígito de verificação)
QrOptionsOpções de codificação para QR Code (correção de erros, versão, máscara, modo)
QrEncodeModeEnum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
QrErrorCorrectionLevelEnum: L, M, Q, H
UpcaOptionsOpções de codificação para UPC-A
UpceOptionsOpções de codificação para UPC-E
SymbologyRegistryResolve nomes de simbologia e fornece definições

Ver também

 Português