Barcode-weergave

Barcode-weergave

Barcodeweergave

Aspose.BarCode FOSS voor Python scheidt codering van weergave. Nadat een barcode is gecodeerd naar een EncodedSymbol, zet een Renderer implementatie de modulematrix om in visuele output. De bibliotheek bevat SvgRenderer en PngRenderer.


RenderOptions

RenderOptions regelt de visuele output van alle renderers. Geef het door aan to_svg() of to_png() op elk Barcode object:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions

bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(
    scale=2.0,
    foreground_color="#003366",
    quiet_zone=10.0,
    show_text=True,
))
EigenschapTypeBeschrijving
scalefloatUniforme schaalfactor voor de gehele barcode
dpiintResolutie voor PNG-uitvoer (heeft geen effect op SVG)
module_widthfloatBreedte van één barcode-module in gebruikers-eenheden
module_heightfloatHoogte van één barcode-module in gebruikers-eenheden
quiet_zonefloatWitruimtevulling rond de barcode
foreground_colorstrHex-kleur voor balken en modules (bijv. "#000000")
background_colorstrHex-kleur voor achtergrond
transparent_backgroundboolTransparante achtergrond voor PNG-uitvoer
show_textboolToon menselijk leesbare tekst onder de barcode
font_familystrLettertype voor menselijk leesbare tekst
font_sizefloatLettergrootte voor menselijk leesbare tekst

ResolvedRenderOptions

ResolvedRenderOptions is de volledig samengevoegde configuratie die door OptionsResolver.resolve() wordt geproduceerd. Het combineert door de gebruiker geleverde RenderOptions met de standaardwaarden van SymbologyProfile. Alle eigenschappen hebben concrete waarden (geen None).

De eigenschap Barcode.default_render_options bevat de RenderOptions die bij de generatie is doorgegeven (of None indien niet opgegeven).


SVG-uitvoer

SvgRenderer produceert SVG-uitvoer. Roep to_svg() aan op een Barcode object:

bc = barcode.ean13("590123412345")
svg_string = bc.to_svg()

# With custom options
svg_custom = bc.to_svg(options=RenderOptions(
    scale=3.0,
    foreground_color="#1a1a1a",
    show_text=True,
    font_family="Helvetica",
    font_size=12.0,
))

with open("ean13.svg", "w") as f:
    f.write(svg_custom)

to_svg() retourneert een str die het volledige SVG-document bevat.


PNG-uitvoer

PngRenderer produceert PNG-uitvoer. Roep to_png() aan op een Barcode object:

bc = barcode.qr("https://example.com")
png_bytes = bc.to_png()

# With custom options
png_custom = bc.to_png(options=RenderOptions(
    scale=4.0,
    dpi=300,
    transparent_background=True,
))

with open("qr.png", "wb") as f:
    f.write(png_custom)

to_png() retourneert bytes die de PNG-beeldgegevens bevat.


Renderer-abstractie

De Renderer abstracte basisklasse definieert de interface voor alle renderers:

class Renderer(ABC):
    def render(self, symbol, layout, options) -> RenderedArtifact: ...

SvgRenderer en PngRenderer implementeren beide deze interface. Je kunt Barcode.render(renderer, options) aanroepen om een specifieke renderer direct te gebruiken:

from aspose_barcode_foss import SvgRenderer, RenderOptions

bc = barcode.code128("DATA")
artifact = bc.render(SvgRenderer(), RenderOptions(scale=2.0))
print(artifact.media_type)  # "image/svg+xml"
print(type(artifact.data))  # <class 'str'>

RenderedArtifact

De RenderedArtifact die door Renderer.render() wordt geretourneerd, bevat:

EigenschapTypeBeschrijving
data`strbytes`
media_typestrMIME-type ("image/svg+xml" of "image/png")
backendstrRenderer-identificatie

Tekstindeling

Elke symbologie heeft een TextLayoutPolicy die bepaalt hoe menselijk leesbare tekst onder de barcode wordt geplaatst. De create_layout(symbol, options) methode retourneert een TextLayout die TextSegment objecten bevat met positie- en tekstgegevens.

QR Code gebruikt QrTextLayoutPolicy, die een niet-actieve lay-out biedt (QR-codes tonen geen menselijk leesbare tekst).


Tips en best practices

  • Gebruik scale voor uniforme afmetingen en module_width/module_height voor precieze dimensiecontrole — combineer beide niet.
  • Stel dpi=300 in voor PNG-output van afdrukkwaliteit; de standaard is schermresolutie.
  • Gebruik transparent_background=True voor PNG-barcodes die over een gekleurde achtergrond worden geplaatst.
  • foreground_color en background_color accepteren standaard hex-kleurstrings ("#RRGGBB").
  • SVG-output is resolutie-onafhankelijk — geef de voorkeur aan SVG voor web- en PDF-inbedding.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
PNG lijkt te kleinStandaardschaal is 1.0Verhoog scale of stel dpi in
Tekst niet zichtbaarshow_text standaard op FalseSet show_text=True
QR code heeft geen tekstQR symbologie ondersteunt geen menselijke leesbare tekstVerwacht gedrag — QR gebruikt een no-op-tekstopmaak
Kleuren niet toegepastEigenschapnaam verkeerd gespeldGebruik exacte eigenschapsnamen: foreground_color, background_color

Zie ook

 Nederlands