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_Acom 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
RenderOptionsinválidos (ex.:scalenegativo oumodule_width) - Tentativa de usar
PdfRenderer(a renderização de PDF geraNotImplementedErrorna 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 --versionProblemas 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_fossou importe classes específicas:
from aspose_barcode_foss import BarcodeService, RenderOptionsPerguntas 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.