Vonalkód megjelenítése

Vonalkód megjelenítése

Vonalkód megjelenítés

Aspose.BarCode FOSS for Python elválasztja a kódolást a megjelenítéstől. Miután egy vonalkódot EncodedSymbol-ba kódoltak, egy Renderer implementáció a modulmátrixot vizuális kimenetté alakítja. A könyvtár tartalmazza a SvgRenderer és PngRenderer elemeket.


RenderOptions

RenderOptions szabályozza az összes renderelő vizuális kimenetét. Add át a to_svg() vagy to_png() bármely Barcode objektumra:

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,
))
TulajdonságTípusLeírás
scalefloatEgységes méretarány-szorzó az egész vonalkódhoz
dpiintFelbontás PNG kimenethez (nincs hatása az SVG-re)
module_widthfloatEgy vonalkód modul szélessége felhasználói egységekben
module_heightfloatEgy vonalkód modul magassága felhasználói egységekben
quiet_zonefloatÜres tér kitöltése a vonalkód körül
foreground_colorstrHex szín a sávokhoz és modulokhoz (pl. "#000000")
background_colorstrHex szín a háttérhez
transparent_backgroundboolÁtlátszó háttér PNG kimenethez
show_textboolAz ember által olvasható szöveg megjelenítése a vonalkód alatt
font_familystrAz ember által olvasható szöveg betűtípusa
font_sizefloatBetűméret az ember által olvasható szöveghez

ResolvedRenderOptions

ResolvedRenderOptions a OptionsResolver.resolve() által előállított teljesen összeolvasztott konfiguráció. Egyesíti a felhasználó által megadott RenderOptions-t a SymbologyProfile alapértelmezésekkel. Minden tulajdonságnak konkrét értéke van (nincs None).

A Barcode.default_render_options tulajdonság tartalmazza a generáláskor átadott RenderOptions-t (vagy None-t, ha nem lett megadva).


SVG kimenet

SvgRenderer SVG kimenetet állít elő. Hívja a to_svg() metódust egy Barcode objektumon:

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() egy str típusú objektumot ad vissza, amely a teljes SVG dokumentumot tartalmazza.


PNG kimenet

PngRenderer PNG kimenetet állít elő. Hívja a to_png() metódust egy Barcode objektumon:

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() visszaad egy bytes típust, amely a PNG képadatokat tartalmazza.


Renderelő absztrakció

A Renderer absztrakt alaposztály meghatározza az interfészt minden renderelő számára:

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

SvgRenderer és PngRenderer egyaránt megvalósítja ezt a felületet. Meghívhatja a Barcode.render(renderer, options) metódust, hogy közvetlenül egy adott renderert használjon:

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

A Renderer.render() által visszaadott RenderedArtifact tartalmaz:

TulajdonságTípusLeírás
data`strbytes`
media_typestrMIME-típus ("image/svg+xml" vagy "image/png")
backendstrRenderelő azonosító

Szövegelrendezés

Minden szimbólumnak van egy TextLayoutPolicy, amely meghatározza, hogy a ember által olvasható szöveg hogyan helyezkedik el a vonalkód alatt. A create_layout(symbol, options) metódus egy TextLayout-t ad vissza, amely TextSegment objektumokat tartalmaz pozícióval és szöveges adatokkal.

QR Code a QrTextLayoutPolicy-t használja, amely egy semmittevő elrendezést biztosít (QR kódok nem jelenítenek meg ember által olvasható szöveget).


Tippek és bevált gyakorlatok

  • Használja a scale-t az egységes méretezéshez, és a module_width/module_height-t a pontos dimenzióvezérléshez — ne kombinálja őket.
  • Állítsa be a dpi=300 értéket nyomtatási minőségű PNG kimenethez; az alapértelmezett a képernyő felbontása.
  • Használja a transparent_background=True értéket színes háttérre helyezett PNG vonalkódokhoz.
  • A foreground_color és a background_color szabványos hex színkarakterláncokat ("#RRGGBB") fogadnak el.
  • Az SVG kimenet felbontásfüggetlen — részesítse előnyben az SVG-t webes és PDF beágyazáshoz.

Gyakori problémák

ProblémaOkJavítás
A PNG túl kicsinek tűnikAz alapértelmezett méretarány 1.0Növelje a scale értékét vagy állítsa be a dpi értéket
A szöveg nem láthatóshow_text alapértelmezett értéke FalseSet show_text=True
QR code nem tartalmaz szövegetQR szimbólumrendszere nem támogatja az ember által olvasható szövegetVárható viselkedés — QR nem-művelet szövegelrendezést használ
Színek nincsenek alkalmazvaA tulajdonság neve elgépelveHasználja a pontos tulajdonságneveket: foreground_color, background_color

Lásd még:

 Magyar