Cómo renderizar códigos de barras con Aspose.BarCode FOSS
Problem
Después de generar un código de barras, necesitas renderizarlo como un archivo de imagen. Aspose.BarCode FOSS para Python genera códigos de barras en formatos SVG y PNG mediante los métodos to_svg() y to_png() del objeto Barcode. La clase RenderOptions controla propiedades visuales como escala, DPI, colores, zona silenciosa y la visualización de texto legible por humanos.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.code128("RENDER-ME")
png = bc.to_png(options=RenderOptions(scale=2.0, dpi=300))Requisitos previos
- Python 3.12 o posterior
- gestor de paquetes pip
aspose-barcode-fosscompilado desde el código fuente
Salida SVG
Llame a to_svg() para obtener el código de barras como una cadena SVG. La salida SVG es basada en vectores y se escala sin pérdida de calidad.
import aspose_barcode_foss as barcode
bc = barcode.qr("https://example.com")
svg_string = bc.to_svg()
with open("barcode.svg", "w") as f:
f.write(svg_string)Salida PNG
Llame a to_png() para obtener el código de barras como bytes PNG. La salida PNG se rasteriza a la escala y DPI especificados.
import aspose_barcode_foss as barcode
bc = barcode.code128("PNG-OUTPUT")
png_bytes = bc.to_png()
with open("barcode.png", "wb") as f:
f.write(png_bytes)Control de escala y DPI
Utilice RenderOptions para establecer scale (un multiplicador de punto flotante para el tamaño del módulo) y dpi (puntos por pulgada para la salida raster). También puede establecer module_width y module_height directamente para un control preciso sobre las dimensiones individuales de los módulos.
from aspose_barcode_foss import RenderOptions
options = RenderOptions(
scale=3.0,
dpi=300,
module_width=1.5,
module_height=25.0,
)
png = bc.to_png(options=options)Configuración de colores
Establezca foreground_color y background_color como cadenas de color CSS. Utilice transparent_background=True para la salida PNG sin relleno de fondo.
from aspose_barcode_foss import RenderOptions
options = RenderOptions(
foreground_color="#003366",
background_color="#FFFFFF",
)
svg = bc.to_svg(options=options)
# Transparent background for PNG
options_transparent = RenderOptions(
foreground_color="#000000",
transparent_background=True,
)
png = bc.to_png(options=options_transparent)Zona silenciosa
La propiedad quiet_zone controla el margen de espacio en blanco alrededor del código de barras en unidades de módulo. Los estándares de códigos de barras normalmente requieren una zona silenciosa mínima para un escaneo fiable.
from aspose_barcode_foss import RenderOptions
options = RenderOptions(quiet_zone=10.0)
svg = bc.to_svg(options=options)Texto legible por humanos
Establezca show_text=True para renderizar texto legible por humanos debajo del código de barras. Controle la fuente con font_family y font_size.
from aspose_barcode_foss import RenderOptions
options = RenderOptions(
show_text=True,
font_family="monospace",
font_size=12.0,
)
svg = bc.to_svg(options=options)Propiedades de RenderOptions
| Propiedad | Tipo | Descripción |
|---|---|---|
scale | float | Multiplicador del tamaño del módulo |
dpi | int | Puntos por pulgada (salida raster) |
module_width | float | Ancho de un módulo |
module_height | float | Altura de un módulo |
quiet_zone | float | Margen de espacio en blanco en unidades de módulo |
foreground_color | str | color CSS para barras/módulos |
background_color | str | color CSS para el fondo |
transparent_background | bool | Fondo PNG transparente |
show_text | bool | Mostrar texto legible para humanos |
font_family | str | Fuente para texto legible para humanos |
font_size | float | Tamaño de fuente para texto legible por humanos |
Limitaciones conocidas
El método to_pdf() y la clase PdfRenderer existen en el API pero generan NotImplementedError. Use to_svg() o to_png() en su lugar. La salida SVG puede incrustarse en documentos PDF usando herramientas externas.