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,
))| Eigenschap | Type | Beschrijving |
|---|---|---|
scale | float | Uniforme schaalfactor voor de gehele barcode |
dpi | int | Resolutie voor PNG-uitvoer (heeft geen effect op SVG) |
module_width | float | Breedte van één barcode-module in gebruikers-eenheden |
module_height | float | Hoogte van één barcode-module in gebruikers-eenheden |
quiet_zone | float | Witruimtevulling rond de barcode |
foreground_color | str | Hex-kleur voor balken en modules (bijv. "#000000") |
background_color | str | Hex-kleur voor achtergrond |
transparent_background | bool | Transparante achtergrond voor PNG-uitvoer |
show_text | bool | Toon menselijk leesbare tekst onder de barcode |
font_family | str | Lettertype voor menselijk leesbare tekst |
font_size | float | Lettergrootte 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:
| Eigenschap | Type | Beschrijving |
|---|---|---|
data | `str | bytes` |
media_type | str | MIME-type ("image/svg+xml" of "image/png") |
backend | str | Renderer-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
scalevoor uniforme afmetingen enmodule_width/module_heightvoor precieze dimensiecontrole — combineer beide niet. - Stel
dpi=300in voor PNG-output van afdrukkwaliteit; de standaard is schermresolutie. - Gebruik
transparent_background=Truevoor PNG-barcodes die over een gekleurde achtergrond worden geplaatst. foreground_colorenbackground_coloraccepteren standaard hex-kleurstrings ("#RRGGBB").- SVG-output is resolutie-onafhankelijk — geef de voorkeur aan SVG voor web- en PDF-inbedding.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| PNG lijkt te klein | Standaardschaal is 1.0 | Verhoog scale of stel dpi in |
| Tekst niet zichtbaar | show_text standaard op False | Set show_text=True |
| QR code heeft geen tekst | QR symbologie ondersteunt geen menselijke leesbare tekst | Verwacht gedrag — QR gebruikt een no-op-tekstopmaak |
| Kleuren niet toegepast | Eigenschapnaam verkeerd gespeld | Gebruik exacte eigenschapsnamen: foreground_color, background_color |