Úvod
Aspose.BarCode FOSS pro Python generuje čárové kódy v sedmi symbologiích a vykresluje je do SVG a PNG. Tento příspěvek se zaměřuje na pipeline vykreslování — jak pomocí RenderOptions, SvgRenderer a PngRenderer kontrolovat výstupní formát, rozměry, barvy a čitelný text.
Knihovna je k dispozici na PyPI jako aspose-barcode-foss, vydána pod licencí MIT bez nativních závislostí. Každý objekt čárového kódu poskytuje pohodlné metody to_svg() a to_png(), plus nízkoúrovňovou metodu render(), která přijímá jakoukoli implementaci Renderer.
Klíčové vlastnosti
SVG výstup s SvgRenderer
SvgRenderer vytváří rozlišením nezávislý SVG markup. Metoda Barcode.to_svg() je zkratka, která interně používá SvgRenderer.
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))
PNG výstup s PngRenderer
PngRenderer vytváří rastrové PNG obrázky. Rozlišení ovládejte pomocí vlastnosti dpi na RenderOptions. Metoda Barcode.to_png() je pohodlná zkratka.
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)
Řízení měřítka a DPI
RenderOptions poskytuje scale (násobek pro rozměry modulů) a dpi (bodů na palec pro rastrový výstup). Tyto dvě spolupracují: scale ovlivňuje logickou velikost čar a mezer, zatímco dpi řídí hustotu pixelů ve výstupu 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)
Barvy a pozadí
Nastavte foreground_color a background_color jako řetězce barev CSS. Aktivujte transparent_background, abyste vynechali výplň pozadí (užitečné pro překrytí existujících návrhů).
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)
Řízení tiché zóny
Vlastnost quiet_zone nastavuje prázdný okraj kolem čárového kódu v jednotkách šířky modulu. Většina standardů čárových kódů vyžaduje minimální tichou zónu pro spolehlivé skenování.
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)
Čitelný text pro člověka
Nastavte show_text=True tak, aby zobrazoval kódovaná data pod čárovým kódem. Vlastnosti font_family a font_size řídí vzhled textu.
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)
Rychlý start
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)
Podporované formáty
| Formát | Přípona | Číst | Zapisovat |
|---|---|---|---|
| SVG | .svg | — | ✓ |
| PNG | .png | — | ✓ |
Poznámka: PdfRenderer existuje v API, ale ve stávajícím vydání vyvolává NotImplementedError.
Open Source a licencování
Aspose.BarCode FOSS pro Python je vydán pod licencí MIT. Zdrojový kód je hostován na GitHub. Můžete knihovnu používat, upravovat a šířit jak v open-source, tak komerčních projektech.