Solución de problemas Aspose.BarCode FOSS for Python

Solución de problemas Aspose.BarCode FOSS for Python

Esta guía cubre los errores y problemas más comunes al generar códigos de barras con Aspose.BarCode FOSS para Python. Cada sección describe el error, su causa y cómo solucionarlo.

Errores comunes

InvalidInputError

InvalidInputError se produce cuando los datos enviados al codificador no cumplen con el conjunto de caracteres o los requisitos de longitud de la simbología.

****Causas típicas::

  • Pasar caracteres alfabéticos a una simbología solo numérica (EAN-13, EAN-8, UPC-A, UPC-E)
  • Proporcionar una cadena cuya longitud no coincide con el requisito de longitud fija de la simbología (p.ej., EAN-13 requiere exactamente 12 o 13 dígitos)
  • Incluir caracteres fuera del conjunto admitido por la simbología (p. ej., el modo base de Code 39 solo admite letras mayúsculas, dígitos y algunos caracteres especiales)

Arreglar: Valide sus datos de entrada antes de llamar BarcodeService.generate(). Verifique el perfil de simbología de capabilities and known_limitations propiedades para el conjunto de caracteres y las restricciones de longitud.

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 se genera cuando el codificador encuentra una falla interna después de que la validación de entrada pasa. Esto es menos frecuente que InvalidInputError.

****Causas típicas::

  • Datos que pasan la validación inicial pero fallan durante la codificación de segmentos (p. ej., datos de QR Code que exceden la capacidad para el nivel de corrección de errores seleccionado)
  • Opciones de codificación conflictivas (p. ej., solicitar Code128EncodeMode.CODE_A con datos que contienen caracteres en minúsculas)

Arreglar: Revise las opciones de codificación pasadas a generate(). Para Code 128, utilice Code128EncodeMode.AUTO para permitir que el codificador seleccione el subconjunto óptimo. Para QR Code, pruebe con un valor más bajo QrErrorCorrectionLevel o reduzca la longitud de los datos.

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 se produce cuando el nombre de simbología pasado a BarcodeService.generate() no está registrado en el SymbologyRegistry.

****Causas típicas::

  • Nombre de simbología con error ortográfico (p. ej. "code_128" en lugar de "code128")
  • Uso de una simbología que no es compatible con la biblioteca (la biblioteca solo admite Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A y UPC-E)

Corrección: Utilice uno de los siete identificadores de simbología compatibles: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Los nombres no distinguen entre mayúsculas y minúsculas, pero deben coincidir con los 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 se produce cuando el renderizador no logra generar salida a partir de un símbolo codificado.

****Causas típicas::

  • Valores RenderOptions no válidos (p. ej., scale negativo o module_width)
  • Intentar usar PdfRenderer (el renderizado PDF genera NotImplementedError en la versión actual)

Corrección: Utilice SvgRenderer or PngRenderer en lugar de PdfRenderer. Verifique que RenderOptions properties tienen 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 y UnsupportedFeatureError

UnsupportedCapabilityError se genera cuando una simbología no admite una capacidad solicitada (p. ej., modo GS1 para una simbología que carece de soporte GS1). UnsupportedFeatureError se genera para características no implementadas en la biblioteca.

Corrección: Verifique el perfil de simbología capabilities propiedad para confirmar qué funciones están disponibles. Evite solicitar el modo GS1 para simbologías que no lo admiten.

Problemas de entorno

Python Versión

Aspose.BarCode FOSS requiere Python 3.12 o posterior. Si ves SyntaxError o fallos de importación, verifica tu versión de Python:

python --version

Problemas de instalación

Compila el paquete desde el código fuente.

La biblioteca es Python puro sin dependencias nativas. Si la instalación tiene éxito pero las importaciones fallan, verifica que no estés sombreando el paquete con un archivo local llamado aspose_barcode_foss.py.

Errores de importación

La importación correcta es:

import aspose_barcode_foss

o importa clases específicas:

from aspose_barcode_foss import BarcodeService, RenderOptions

Preguntas frecuentes

¿Por qué mi código de barras EAN-13 muestra un número diferente al que ingresé?

EAN-13 calcula automáticamente un dígito de control. Si proporcionas 12 dígitos, se agrega el décimo-tercero. Si proporcionas 13 dígitos, el último dígito se valida como dígito de control. Usa la propiedad Ean13Options allow_check_digit_input para controlar este comportamiento.

¿Por qué la salida PDF genera NotImplementedError?

PdfRenderer.render() y Barcode.to_pdf() aún no están implementados. Usa Barcode.to_svg() o Barcode.to_png() en su lugar, o renderiza con SvgRenderer o PngRenderer directamente.

¿Cómo depuro qué nombres de simbología están disponibles?

Usa SymbologyRegistry.get_definition() para comprobar si una simbología está registrada. Si genera SymbologyNotFoundError, la simbología no está disponible. Las siete simbologías compatibles son: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A y UPC-E.

Ver también

 Español