Introduzione
Aspose.BarCode FOSS per Python genera codici a barre in sette simbologie e li rende in SVG e PNG. Questo post si concentra sulla pipeline di rendering — come controllare il formato di output, le dimensioni, i colori e il testo leggibile dall’uomo usando RenderOptions, SvgRenderer e PngRenderer.
La libreria è disponibile su PyPI come aspose-barcode-foss, rilasciata sotto licenza MIT senza dipendenze native. Ogni oggetto codice a barre espone i metodi di comodità to_svg() e to_png(), oltre a un metodo di livello inferiore render() che accetta qualsiasi implementazione Renderer.
Caratteristiche chiave
Output SVG con SvgRenderer
SvgRenderer produce markup SVG indipendente dalla risoluzione. Il metodo Barcode.to_svg() è una scorciatoia che utilizza 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))
Output PNG con PngRenderer
PngRenderer produce immagini raster PNG. Controlla la risoluzione con la proprietà dpi su RenderOptions. Il metodo Barcode.to_png() è la scorciatoia comoda.
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)
Controllo della scala e DPI
RenderOptions fornisce scale (moltiplicatore per le dimensioni dei moduli) e dpi (punti per pollice per l’output raster). Questi funzionano insieme: scale influisce sulla dimensione logica delle barre e degli spazi, mentre dpi controlla la densità dei pixel nell’output 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)
Colori e sfondo
Imposta foreground_color e background_color come stringhe di colore CSS. Abilita transparent_background per omettere il riempimento dello sfondo (utile per sovrapporre a design esistenti).
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)
Controllo della zona silenziosa
La proprietà quiet_zone imposta il margine vuoto attorno al codice a barre in unità di larghezza del modulo. La maggior parte degli standard dei codici a barre richiede una zona silenziosa minima per una scansione affidabile.
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)
Testo leggibile dall’uomo
Imposta show_text=True per visualizzare i dati codificati sotto il codice a barre. Le proprietà font_family e font_size controllano l’aspetto del testo.
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)
Avvio rapido
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)
Formati supportati
| Formato | Estensione | Leggi | Scrivi |
|---|---|---|---|
| SVG | .svg | — | ✓ |
| PNG | .png | — | ✓ |
Nota: PdfRenderer esiste nel API ma genera NotImplementedError nella versione attuale.
Open Source & Licenze
Aspose.BarCode FOSS per Python è rilasciato sotto la MIT License. Il codice sorgente è ospitato su GitHub. Puoi usare, modificare e ridistribuire la libreria sia in progetti open-source che commerciali.