Introducción

Aspose.BarCode FOSS para Python genera códigos de barras en siete simbologías y los renderiza a SVG y PNG. Esta publicación se centra en la pipeline de renderizado — cómo controlar el formato de salida, dimensiones, colores y texto legible por humanos usando RenderOptions, SvgRenderer y PngRenderer.

La biblioteca está disponible en PyPI como aspose-barcode-foss, lanzada bajo la licencia MIT sin dependencias nativas. Cada objeto de código de barras expone los métodos convenientes to_svg() y to_png(), además de un método de nivel inferior render() que acepta cualquier implementación Renderer.


Características clave

Salida SVG con SvgRenderer

SvgRenderer produce un marcado SVG independiente de la resolución. El método Barcode.to_svg() es un atajo que usa SvgRenderer internamente.

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

service = BarcodeService()
barcode = service.generate("code128", "RENDER-TEST-001")

# Direct convenience method
svg_string = barcode.to_svg(RenderOptions(scale=2.0))

# Explicit renderer usage
renderer = SvgRenderer()
result = barcode.render(renderer, RenderOptions(scale=2.0, show_text=True))

Salida PNG con PngRenderer

PngRenderer produce imágenes raster PNG. Controle la resolución con la propiedad dpi en RenderOptions. El método Barcode.to_png() es el atajo de conveniencia.

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

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

# Convenience method — returns bytes
png_bytes = barcode.to_png(RenderOptions(dpi=300, scale=3.0))

with open("barcode.png", "wb") as f:
    f.write(png_bytes)

Control de escala y DPI

RenderOptions proporciona scale (multiplicador para dimensiones de módulo) y dpi (puntos por pulgada para la salida raster). Estos funcionan juntos: scale afecta el tamaño lógico de las barras y espacios, mientras que dpi controla la densidad de píxeles en la salida PNG.

from aspose_barcode_foss import RenderOptions

# High-resolution print label
print_options = RenderOptions(scale=4.0, dpi=600)

# Screen display
screen_options = RenderOptions(scale=1.0, dpi=96)

Colores y fondo

Establezca foreground_color y background_color como cadenas de color CSS. Active transparent_background para omitir el relleno de fondo (útil para superponer en diseños existentes).

from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()
barcode = service.generate("qrcode", "https://example.com")

options = RenderOptions(
    foreground_color="#003366",
    background_color="#FFFFFF",
    scale=3.0,
)
svg = barcode.to_svg(options)

Control de zona silenciosa

La propiedad quiet_zone establece el margen en blanco alrededor del código de barras en unidades de ancho de módulo. La mayoría de los estándares de códigos de barras requieren una zona silenciosa mínima para una lectura fiable.

from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()
barcode = service.generate("code39", "QUIET-ZONE")

# Wider quiet zone for print use
options = RenderOptions(quiet_zone=10.0, scale=2.0)
svg = barcode.to_svg(options)

Texto legible por humanos

Establezca show_text=True para mostrar los datos codificados debajo del código de barras. Las propiedades font_family y font_size controlan la apariencia del texto.

from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()
barcode = service.generate("upca", "01234567890")

options = RenderOptions(
    show_text=True,
    font_family="monospace",
    font_size=12.0,
    scale=2.5,
)
svg = barcode.to_svg(options)

Inicio rápido

asposefoss/barcode is not yet published — build from source until it ships. See the project README for build instructions.
from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()

# Generate a Code 128 barcode
barcode = service.generate("code128", "HELLO-2026")

# Render to SVG with custom options
options = RenderOptions(
    scale=2.0,
    show_text=True,
    foreground_color="#000000",
    background_color="#FFFFFF",
    quiet_zone=4.0,
)

svg_output = barcode.to_svg(options)
with open("hello.svg", "w") as f:
    f.write(svg_output)

# Render to PNG at 300 DPI
png_bytes = barcode.to_png(RenderOptions(dpi=300, scale=3.0))
with open("hello.png", "wb") as f:
    f.write(png_bytes)

Formatos compatibles

FormatoExtensiónLeerEscribir
SVG.svg
PNG.png

Nota: PdfRenderer existe en el API pero genera NotImplementedError en la versión actual.


Código abierto y licencias

Aspose.BarCode FOSS para Python se publica bajo la Licencia MIT. El código fuente está alojado en GitHub. Puede usar, modificar y redistribuir la biblioteca en proyectos tanto de código abierto como comerciales.


Primeros pasos

Recursos relacionados