Barkod Rendering

Barkod Rendering

Aspose.BarCode FOSS for Python separates encoding from rendering. After a barcode is encoded into an EncodedSymbol,och A Renderer implementeringen konverterar modulmatrix till visuell utgång. biblioteket innehåller SvgRenderer och PngRenderer.


RenderOptions

RenderOptions kontrollerar visuell utgång av alla renderer. pass den till to_svg() eller to_png() på någon Barcode Objektet är:

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,
))
PropertyTyp avBeskrivning
scalefloatEnhetlig skala multiplikator för hela barkoden
dpiintResolution för PNG-utsläpp (har ingen effekt på SVG)
module_widthfloatBretthet av en barkodmodul i användarenheter
module_heightfloatHöjd av en barkodmodul i användarenheter
quiet_zonefloatWhitespace padding runt barkoden
foreground_colorstrHexfärg för barer och moduler (t.ex., "#000000")
background_colorstrHex färg för bakgrunden
transparent_backgroundboolÖppen bakgrund för PNG-utgången
show_textboolVisa mänskligt lästa text under barkoden
font_familystrBokstäver för mänskligt lästa text
font_sizefloatFontstorlek för mänskligt lästa text

ResolvedRenderOptions

ResolvedRenderOptions är den helt blandade konfigurationen som produceras av OptionsResolver.resolve(). kombinerar användar-supported RenderOptions Med den SymbologyProfile Alla egenskaper har konkreta värden (inte None).

Den Barcode.default_render_options Fastigheten innehar den RenderOptions för att övergå till generationstid (eller None om inte levereras).


SVG utgång

SvgRenderer producerar SVG utgång. kall to_svg() på a Barcode Objektet är:

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() Återkommer A str Innehåller det kompletta SVG-dokumentet.


PNG utgång

PngRenderer producerar PNG-utgång. kall to_png() på a Barcode Objektet är:

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() återvänder bytes Innehåller PNG-bilddata.


Renderer Abstraktion

Den Renderer Abstrakt basklassen definierar gränssnittet för alla renderare:

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

SvgRenderer och PngRenderer båda implementerar detta gränssnitt. du kan ringa Barcode.render(renderer, options) att använda en viss renderare direkt:

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

Den RenderedArtifact återvände till Renderer.render() Innehåller :

PropertyTyp avBeskrivning
data`strbytes`
media_typestrMIME typ ("image/svg+xml" eller "image/png")
backendstrRenderer identifierar

Text layout

Varje symbol har en TextLayoutPolicy som bestämmer hur mänskligt lästa text placeras under rutan. create_layout(symbol, options) Metoden returnerar A TextLayout Innehåller TextSegment objekt med position och textdata.

QR koden används QrTextLayoutPolicy, som ger en no-op layout (QR-koder visar inte mänskligt läsbar text).


Tips och bästa praxis

  • Användning scale för enhetlig storlek och module_width/module_height för exakt dimensionskontroll - inte kombinera båda.
  • Setade dpi=300 för utskriftskvalitet PNG-utgång; standard är skärmupplösning.
  • Användning transparent_background=True för PNG-barkoder som kommer att överlämnas på färgade bakgrunder.
  • foreground_color och background_color Färgstang (Hex) är en standardfärgsträng ("#RRGGBB").
  • SVG-utgången är upplösningslöst – föredrar SV G för web och PDF-inbyggnad.

Vanliga frågor

IssueCauseFixar
PNG verkar för litenStandardskalan är 1.0Increase scale eller Set dpi
Text inte synligshow_text Defalterade till FalseSetade show_text=True
QR-koder har ingen textQR-symbolen stöder inte mänskligt läsbar textFörväntade beteenden – QR använder no-op text layout
Färger som inte användsFastighetens namn misspelledAnvänd exakta fastigheterna: foreground_color, background_color

Se även

 Svenska