Resolução de problemas Aspose.BarCode FOSS for Python

Resolução de problemas Aspose.BarCode FOSS for Python

Este guia cobre os erros e problemas mais comuns ao gerar códigos de barras com Aspose.BarCode FOSS para Python. Cada seção descreve o erro, sua causa e como corrigi-lo.

Erros comuns

InvalidInputError

InvalidInputError é levantado quando os dados passados para o codificador não estão em conformidade com o conjunto de caracteres ou requisitos de comprimento da simbologia.

****Causas típicas::

  • Passar caracteres alfabéticos para uma simbologia apenas numérica (EAN-13, EAN-8, UPC-A, UPC-E)
  • Fornecer uma string cujo comprimento não corresponde ao requisito de comprimento fixo da simbologia (por exemplo, EAN-13 requer exatamente 12 ou 13 dígitos)
  • Incluindo caracteres fora do conjunto suportado pela simbologia (por exemplo, o modo base Code 39 suporta apenas letras maiúsculas, dígitos e alguns caracteres especiais)

Corrigir: Valide seus dados de entrada antes de chamar BarcodeService.generate(). Verifique o perfil de simbologia capabilities and known_limitations propriedades para conjunto de caracteres e restrições de comprimento.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# EAN-13 requires exactly 12 or 13 digits
data = "590123412345"  # 12 digits — valid
barcode = service.generate("ean13", data)

EncodingError

EncodingError é acionado quando o codificador encontra uma falha interna após a validação de entrada ser bem-sucedida. Isso é menos comum do que InvalidInputError.

****Causas típicas::

  • Dados que passam na validação inicial, mas falham durante a codificação do segmento (por exemplo, dados QR Code que excedem a capacidade para o nível de correção de erro escolhido)
  • Opções de codificação conflitantes (por exemplo, solicitar Code128EncodeMode.CODE_A com dados que contêm caracteres minúsculos)

Corrigir: Revise as opções de codificação passadas para generate(). Para Code 128, use Code128EncodeMode.AUTO para permitir que o codificador selecione o subconjunto ideal. Para QR Code, tente um valor mais baixo QrErrorCorrectionLevel ou reduza o comprimento dos dados.

from aspose_barcode_foss import BarcodeService, Code128Options, Code128EncodeMode

service = BarcodeService()
options = Code128Options(encode_mode=Code128EncodeMode.AUTO)
barcode = service.generate("code128", "Hello123", encode=options)

SymbologyNotFoundError

SymbologyNotFoundError é levantado quando o nome da simbologia passado para BarcodeService.generate() não está registrado no SymbologyRegistry.

****Causas típicas::

  • Nome de simbologia incorreto (ex.: "code_128" ao invés de "code128")
  • Usando uma simbologia que não é suportada pela biblioteca (a biblioteca suporta apenas Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A e UPC-E)

Correção: Use um dos sete identificadores de simbologia suportados: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Nomes não diferenciam maiúsculas de minúsculas, mas devem corresponder aos identificadores registrados.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# Correct symbology names
barcode = service.generate("code128", "ABC-123")
barcode = service.generate("qrcode", "https://example.com")

RenderingError

RenderingError é levantado quando o renderizador falha ao produzir saída a partir de um símbolo codificado.

****Causas típicas::

  • Valores de RenderOptions inválidos (ex.: scale negativo ou module_width)
  • Tentativa de usar PdfRenderer (a renderização de PDF gera NotImplementedError na versão atual)

Correção: Use SvgRenderer or PngRenderer em vez de PdfRenderer. Verifique se RenderOptions as propriedades têm valores positivos válidos.

from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer

service = BarcodeService()
barcode = service.generate("ean13", "590123412345")

options = RenderOptions(scale=2.0, dpi=300)
result = barcode.render(SvgRenderer(), options)

UnsupportedCapabilityError e UnsupportedFeatureError

UnsupportedCapabilityError é levantado quando uma simbologia não suporta a capacidade solicitada (ex.: modo GS1 para uma simbologia que não possui suporte a GS1). UnsupportedFeatureError é levantado para recursos não implementados na biblioteca.

Correção: Verifique o perfil da simbologia capabilities propriedade para confirmar quais recursos estão disponíveis. Evite solicitar o modo GS1 para simbologias que não o suportam.

Problemas de ambiente

Versão Python

Aspose.BarCode FOSS requer Python 3.12 ou posterior. Se você vir SyntaxError ou falhas de importação, verifique a sua versão Python:

python --version

Problemas de Instalação

Compile o pacote a partir do código-fonte.

A biblioteca é pura Python sem dependências nativas. Se a instalação for bem-sucedida mas as importações falharem, verifique se você não está ofuscando o pacote com um arquivo local chamado aspose_barcode_foss.py.

Erros de Importação

A importação correta é:

import aspose_barcode_foss

ou importe classes específicas:

from aspose_barcode_foss import BarcodeService, RenderOptions

Perguntas Frequentes

Por que o código de barras EAN-13 mostra um número diferente do que eu inseri?

EAN-13 calcula automaticamente um dígito verificador. Se você fornecer 12 dígitos, o 13º dígito é acrescentado. Se você fornecer 13 dígitos, o último dígito é validado como dígito verificador. Use a propriedade Ean13Options allow_check_digit_input para controlar esse comportamento.

Por que a saída PDF gera NotImplementedError?

PdfRenderer.render() e Barcode.to_pdf() ainda não foram implementados. Use Barcode.to_svg() ou Barcode.to_png() em vez disso, ou renderize diretamente com SvgRenderer ou PngRenderer.

Como faço para depurar quais nomes de simbologia estão disponíveis?

Use SymbologyRegistry.get_definition() para verificar se uma simbologia está registrada. Se gerar SymbologyNotFoundError, a simbologia não está disponível. As sete simbologias suportadas são: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A e UPC-E.

Ver também

 Português