Wstęp
Aspose.BarCode FOSS for Python generuje kody kreskowe w siedmiu symbologiach i renderuje je do SVG oraz PNG. Ten wpis koncentruje się na pipeline renderowania — jak kontrolować format wyjścia, wymiary, kolory i tekst czytelny dla człowieka przy użyciu RenderOptions, SvgRenderer i PngRenderer.
Biblioteka jest dostępna na PyPI jako aspose-barcode-foss, wydana na licencji MIT bez zależności natywnych. Każdy obiekt kodu kreskowego udostępnia metody ułatwiające to_svg() i to_png(), a także niższopoziomową metodę render(), która przyjmuje dowolną implementację Renderer.
Kluczowe funkcje
Wyjście SVG z SvgRenderer
SvgRenderer generuje znacznik SVG niezależny od rozdzielczości. Metoda Barcode.to_svg() jest skrótem, który wewnętrznie używa 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))
Wyjście PNG z PngRenderer
PngRenderer generuje rastrowe obrazy PNG. Rozdzielczość kontroluje się za pomocą właściwości dpi w RenderOptions. Metoda Barcode.to_png() jest wygodnym skrótem.
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)
Kontrola skali i DPI
RenderOptions udostępnia scale (mnożnik wymiarów modułów) oraz dpi (punkty na cal dla wyjścia rastrowego). Działają razem: scale wpływa na logiczny rozmiar pasków i przerw, natomiast dpi kontroluje gęstość pikseli w wyjściu 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)
Kolory i tło
Ustaw foreground_color i background_color jako ciągi kolorów CSS. Włącz transparent_background, aby pominąć wypełnienie tła (przydatne przy nakładaniu na istniejące projekty).
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)
Kontrola strefy Quiet Zone
Właściwość quiet_zone ustawia pusty margines wokół kodu kreskowego w jednostkach szerokości modułu. Większość standardów kodów kreskowych wymaga minimalnej quiet zone dla niezawodnego skanowania.
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)
Tekst czytelny dla człowieka
Ustaw show_text=True, aby wyświetlał zakodowane dane poniżej kodu kreskowego. Właściwości font_family i font_size kontrolują wygląd tekstu.
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)
Szybki 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)
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| SVG | .svg | — | ✓ |
| PNG | .png | — | ✓ |
Uwaga: PdfRenderer istnieje w API, ale generuje NotImplementedError w bieżącej wersji.
Open Source i licencjonowanie
Aspose.BarCode FOSS dla Python jest udostępniony na licencji MIT. Kod źródłowy jest hostowany na GitHub. Możesz używać, modyfikować i rozpowszechniać bibliotekę zarówno w projektach open-source, jak i komercyjnych.