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,
))| Property | Typ av | Beskrivning |
|---|---|---|
scale | float | Enhetlig skala multiplikator för hela barkoden |
dpi | int | Resolution för PNG-utsläpp (har ingen effekt på SVG) |
module_width | float | Bretthet av en barkodmodul i användarenheter |
module_height | float | Höjd av en barkodmodul i användarenheter |
quiet_zone | float | Whitespace padding runt barkoden |
foreground_color | str | Hexfärg för barer och moduler (t.ex., "#000000") |
background_color | str | Hex färg för bakgrunden |
transparent_background | bool | Öppen bakgrund för PNG-utgången |
show_text | bool | Visa mänskligt lästa text under barkoden |
font_family | str | Bokstäver för mänskligt lästa text |
font_size | float | Fontstorlek 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 :
| Property | Typ av | Beskrivning |
|---|---|---|
data | `str | bytes` |
media_type | str | MIME typ ("image/svg+xml" eller "image/png") |
backend | str | Renderer 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
scaleför enhetlig storlek ochmodule_width/module_heightför exakt dimensionskontroll - inte kombinera båda. - Setade
dpi=300för utskriftskvalitet PNG-utgång; standard är skärmupplösning. - Användning
transparent_background=Trueför PNG-barkoder som kommer att överlämnas på färgade bakgrunder. foreground_colorochbackground_colorFä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
| Issue | Cause | Fixar |
|---|---|---|
| PNG verkar för liten | Standardskalan är 1.0 | Increase scale eller Set dpi |
| Text inte synlig | show_text Defalterade till False | Setade show_text=True |
| QR-koder har ingen text | QR-symbolen stöder inte mänskligt läsbar text | Förväntade beteenden – QR använder no-op text layout |
| Färger som inte används | Fastighetens namn misspelled | Använd exakta fastigheterna: foreground_color, background_color |