Introducción

Aspose.BarCode FOSS para Python proporciona clases de opciones por simbología que controlan el comportamiento de codificación en los siete formatos de código de barras compatibles. Cada clase de opción hereda de EncodeOptions y agrega propiedades específicas de su simbología — modos de codificación Code 128, selección ASCII Code 39, niveles de corrección de errores QR, y manejo del dígito de control EAN/UPC.

Esta publicación cubre cada clase de opción, sus propiedades y ejemplos de código funcionales. Las clases están disponibles en el paquete de nivel superior aspose_barcode_foss.


Características clave

Modos de codificación Code 128

Code128Options controla qué conjuntos de caracteres Code 128 utiliza el codificador. La propiedad encode_mode acepta un valor de enumeración Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC o CODE_BC. AUTO selecciona automáticamente la codificación más compacta. CODE_C está optimizado para datos únicamente numéricos (pares de dígitos codificados como puntos de código únicos).

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

bc = barcode.code128(
    "1234567890",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()

Code 128 también admite las propiedades gs1_enabled y eci_assignment_number heredadas de EncodeOptions para GS1 y metadatos ECI.

Code 39 Codificación

Code39Options controla si el codificador usa el conjunto base de 43 caracteres o la extensión Full ASCII. Establezca full_ascii=True para habilitar el modo Full ASCII, que codifica todo el rango ASCII de 128 caracteres usando pares de desplazamiento. La propiedad opcional add_check_digit agrega un dígito de control modulo-43.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options

bc = barcode.code39(
    "Hello",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()

QR Code Configuración

QrOptions ofrece el conjunto de configuración más completo entre las simbologías soportadas:

  • error_correction_level: QrErrorCorrectionLevel.L (7%), .M (15%), .Q (25%), .H (30%)
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version: versión QR (1–40), que controla el tamaño del símbolo
  • mask: patrón de máscara (0–7) para selección manual
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

bc = barcode.qr(
    "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.Q,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)
png_bytes = bc.to_png()

Dígitos de control EAN y UPC

Ean13Options, Ean8Options, UpcaOptions y UpceOptions cada uno tiene una propiedad allow_check_digit_input. Por defecto, la biblioteca calcula el dígito de control automáticamente a partir de los datos. Establezca allow_check_digit_input=True si sus datos ya incluyen el dígito de control.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options

# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()

# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

Opciones de renderizado

RenderOptions se aplica a todas las simbologías y controla la salida visual. Páselo a to_svg() o to_png():

PropiedadTipoDescripción
scalefloatMultiplicador de escala uniforme
dpiintResolución para salida PNG
module_widthfloatAncho de un módulo de código de barras
module_heightfloatAltura de un módulo de código de barras
quiet_zonefloatRelleno de espacio en blanco alrededor del código de barras
foreground_colorstrColor hexadecimal para barras (p.ej., "#000000")
background_colorstrColor hexadecimal para fondo
transparent_backgroundboolFondo transparente para PNG
show_textboolMostrar texto legible por humanos debajo del código de barras
font_familystrFuente para texto legible por humanos
font_sizefloatTamaño de fuente para texto legible por humanos
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions

bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
    scale=3.0,
    dpi=300,
    foreground_color="#1a1a1a",
    background_color="#ffffff",
    show_text=True,
    font_family="Courier New",
))

Manejo de errores

Toda la validación de opciones de codificación se realiza en tiempo de análisis. Si se proporcionan datos no válidos u opciones incompatibles, la biblioteca lanza una excepción tipada antes de que comience cualquier codificación:

  • InvalidInputError — los datos contienen caracteres no compatibles con la simbología
  • EncodingError — la codificación falla (p.ej., los datos superan la capacidad)
  • SymbologyNotFoundError — nombre de simbología no reconocido pasado a generate()
  • UnsupportedCapabilityError — la función solicitada no está disponible para esta simbología

Todas las clases de excepción heredan de BarcodeError.


Inicio rápido

git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .

Genera códigos de barras con diferentes opciones de codificación y guárdalos:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
    Code128Options, Code128EncodeMode,
    QrOptions, QrErrorCorrectionLevel,
    RenderOptions,
)

# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
    "9876543210",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
    f.write(c128.to_svg())

# QR with high error correction
qr = barcode.qr(
    "https://example.com",
    encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
    f.write(qr.to_png(options=RenderOptions(scale=4.0)))

# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
    f.write(ean.to_svg(options=RenderOptions(
        foreground_color="#003366",
        show_text=True,
    )))

Formatos compatibles

SymbologyTipoClase OptionsPropiedades clave
Code 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

Formatos de salida:

FormatoExtensiónExport
SVG.svg
PNG.png

Código abierto y licencias

Aspose.BarCode FOSS para Python está licenciado bajo MIT. El código fuente está disponible en GitHub; compílalo desde el código fuente. Sin dependencias nativas, sin telemetría, sin límites de uso.


Primeros pasos

Recursos relacionados