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,.KANJIversion: versión QR (1–40), que controla el tamaño del símbolomask: 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():
| Propiedad | Tipo | Descripción |
|---|---|---|
scale | float | Multiplicador de escala uniforme |
dpi | int | Resolución para salida PNG |
module_width | float | Ancho de un módulo de código de barras |
module_height | float | Altura de un módulo de código de barras |
quiet_zone | float | Relleno de espacio en blanco alrededor del código de barras |
foreground_color | str | Color hexadecimal para barras (p.ej., "#000000") |
background_color | str | Color hexadecimal para fondo |
transparent_background | bool | Fondo transparente para PNG |
show_text | bool | Mostrar texto legible por humanos debajo del código de barras |
font_family | str | Fuente para texto legible por humanos |
font_size | float | Tamañ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íaEncodingError— la codificación falla (p.ej., los datos superan la capacidad)SymbologyNotFoundError— nombre de simbología no reconocido pasado agenerate()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
| Symbology | Tipo | Clase Options | Propiedades clave |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
Formatos de salida:
| Formato | Extensión | Export |
|---|---|---|
| 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
- Primeros pasos
- Guía del desarrollador
- Artículos de la base de conocimientos
- API Reference
- PyPI: aspose-barcode-foss