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ág | Típus | Leírás |
|---|---|---|
scale | float | Egységes méretarány-szorzó az egész vonalkódhoz |
dpi | int | Felbontás PNG kimenethez (nincs hatása az SVG-re) |
module_width | float | Egy vonalkód modul szélessége felhasználói egységekben |
module_height | float | Egy vonalkód modul magassága felhasználói egységekben |
quiet_zone | float | Üres tér kitöltése a vonalkód körül |
foreground_color | str | Hex szín a sávokhoz és modulokhoz (pl. "#000000") |
background_color | str | Hex szín a háttérhez |
transparent_background | bool | Átlátszó háttér PNG kimenethez |
show_text | bool | Az ember által olvasható szöveg megjelenítése a vonalkód alatt |
font_family | str | Az ember által olvasható szöveg betűtípusa |
font_size | float | Betű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ág | Típus | Leírás |
|---|---|---|
data | `str | bytes` |
media_type | str | MIME-típus ("image/svg+xml" vagy "image/png") |
backend | str | Renderelő 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 amodule_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 abackground_colorszabvá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éma | Ok | Javítás |
|---|---|---|
| A PNG túl kicsinek tűnik | Az alapértelmezett méretarány 1.0 | Nö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 False | Set show_text=True |
| QR code nem tartalmaz szöveget | QR szimbólumrendszere nem támogatja az ember által olvasható szöveget | Várható viselkedés — QR nem-művelet szövegelrendezést használ |
| Színek nincsenek alkalmazva | A tulajdonság neve elgépelve | Használja a pontos tulajdonságneveket: foreground_color, background_color |