Introdução
Aspose.BarCode FOSS para Python gera códigos de barras em sete simbologias e os renderiza em SVG e PNG. Este post foca na cadeia de renderização — como controlar o formato de saída, dimensões, cores e texto legível por humanos usando RenderOptions, SvgRenderer e PngRenderer.
A biblioteca está disponível em PyPI como aspose-barcode-foss, lançada sob a licença MIT sem dependências nativas. Cada objeto de código de barras expõe os métodos convenientes to_svg() e to_png(), além de um método de nível mais baixo render() que aceita qualquer implementação Renderer.
Principais Recursos
Saída SVG com SvgRenderer
SvgRenderer produz marcação SVG independente de resolução. O método Barcode.to_svg() é um atalho 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))
Saída PNG com PngRenderer
PngRenderer produz imagens raster PNG. Controle a resolução com a propriedade dpi em RenderOptions. O método Barcode.to_png() é o atalho de conveniência.
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)
Controlando Escala e DPI
RenderOptions fornece scale (multiplicador para dimensões dos módulos) e dpi (pontos por polegada para saída raster). Eles funcionam juntos: scale afeta o tamanho lógico das barras e espaços, enquanto dpi controla a densidade de pixels na saída 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)
Cores e Plano de Fundo
Defina foreground_color e background_color como cadeias de cores CSS. Ative transparent_background para omitir o preenchimento de fundo (útil ao sobrepor em designs 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)
Controle da Zona de Silêncio
A propriedade quiet_zone define a margem em branco ao redor do código de barras em unidades de largura do módulo. A maioria das normas de códigos de barras exige uma zona de silêncio mínima para leitura confiável.
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 Legível por Humanos
Defina show_text=True para exibir os dados codificados abaixo do código de barras. As propriedades font_family e font_size controlam a aparência do 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)
Início 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 Compatíveis
| Formato | Extensão | Ler | Escrever |
|---|---|---|---|
| SVG | .svg | — | ✓ |
| PNG | .png | — | ✓ |
Observação: PdfRenderer existe no API, mas gera NotImplementedError na versão atual.
Código Aberto e Licenciamento
Aspose.BarCode FOSS para Python é lançado sob a Licença MIT. O código-fonte está hospedado em GitHub. Você pode usar, modificar e redistribuir a biblioteca em projetos de código aberto e comerciais.