Como Renderizar Códigos de Barras com Aspose.BarCode FOSS
Problem
Depois de gerar um código de barras, você precisa renderizá-lo como um arquivo de imagem. Aspose.BarCode FOSS para Python renderiza códigos de barras nos formatos SVG e PNG através dos métodos to_svg() e to_png() no objeto Barcode. A classe RenderOptions controla propriedades visuais como escala, DPI, cores, zona silenciosa e exibição de texto legível.
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))Pré-requisitos
- Python 3.12 ou posterior
- gerenciador de pacotes pip
aspose-barcode-fosscompilado a partir do código-fonte
Saída SVG
Chame to_svg() para obter o código de barras como uma string SVG. A saída SVG é baseada em vetor e escala sem perda de qualidade.
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)Saída PNG
Chame to_png() para obter o código de barras como bytes PNG. A saída PNG é rasterizada na escala e 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)Controlando Escala e DPI
Use RenderOptions para definir scale (um multiplicador de ponto flutuante para o tamanho do módulo) e dpi (pontos por polegada para a saída raster). Você também pode definir module_width e module_height diretamente para controle preciso das dimensões individuais dos 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)Definindo Cores
Defina foreground_color e background_color como strings de cor CSS. Use transparent_background=True para saída PNG sem preenchimento de fundo.
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
A propriedade quiet_zone controla a margem de espaço em branco ao redor do código de barras em unidades de módulo. Os padrões de códigos de barras normalmente exigem uma zona silenciosa mínima para uma leitura confiável.
from aspose_barcode_foss import RenderOptions
options = RenderOptions(quiet_zone=10.0)
svg = bc.to_svg(options=options)Texto Legível
Defina show_text=True para renderizar texto legível abaixo do código de barras. Controle a fonte com font_family e 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)RenderOptions Propriedades
| Propriedade | Tipo | Descrição |
|---|---|---|
scale | float | Multiplicador para o tamanho do módulo |
dpi | int | Pontos por polegada (saída raster) |
module_width | float | Largura de um módulo |
module_height | float | Altura de um módulo |
quiet_zone | float | Margem de espaço em branco em unidades de módulo |
foreground_color | str | CSS cor para barras/módulos |
background_color | str | CSS cor de fundo |
transparent_background | bool | Fundo PNG transparente |
show_text | bool | Exibir texto legível por humanos |
font_family | str | Fonte para texto legível por humanos |
font_size | float | Tamanho da fonte para texto legível por humanos |
Limitações Conhecidas
O método to_pdf() e a classe PdfRenderer existem no API, mas geram NotImplementedError. Use to_svg() ou to_png() em vez disso. A saída SVG pode ser incorporada em documentos PDF usando ferramentas externas.