Introduktion
Aspose.BarCode FOSS för Python genererar streckkoder i sju symboler och renderar dem till SVG och PNG. Detta inlägg fokuserar på renderingspipeline — hur man styr utdataformat, dimensioner, färger och läsbar text med RenderOptions, SvgRenderer och PngRenderer.
Biblioteket finns tillgängligt på PyPI som aspose-barcode-foss, släppt under MIT-licensen utan inhemska beroenden. Varje streckkodobjekt exponerar to_svg() och to_png() bekvämlighetsmetoder, plus en lägre nivå render() metod som accepterar vilken Renderer implementation som helst.
Nyckelfunktioner
SVG-utdata med SvgRenderer
SvgRenderer producerar upplösningsoberoende SVG-markup. Barcode.to_svg()-metoden är en genväg som använder SvgRenderer internt.
from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer
service = BarcodeService()
barcode = service.generate("code128", "RENDER-TEST-001")
# Direct convenience method
svg_string = barcode.to_svg(RenderOptions(scale=2.0))
# Explicit renderer usage
renderer = SvgRenderer()
result = barcode.render(renderer, RenderOptions(scale=2.0, show_text=True))
PNG-utdata med PngRenderer
PngRenderer producerar raster-PNG-bilder. Styr upplösningen med dpi-egenskapen på RenderOptions. Barcode.to_png()-metoden är en bekvämlighetsgenväg.
from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import PngRenderer
service = BarcodeService()
barcode = service.generate("ean13", "590123412345")
# Convenience method — returns bytes
png_bytes = barcode.to_png(RenderOptions(dpi=300, scale=3.0))
with open("barcode.png", "wb") as f:
f.write(png_bytes)
Styrning av skala och DPI
RenderOptions tillhandahåller scale (multiplikator för modulernas dimensioner) och dpi (punkter per tum för rasterutmatning). Dessa fungerar tillsammans: scale påverkar den logiska storleken på staplar och mellanrum, medan dpi styr pixeltätheten i PNG-utdata.
from aspose_barcode_foss import RenderOptions
# High-resolution print label
print_options = RenderOptions(scale=4.0, dpi=600)
# Screen display
screen_options = RenderOptions(scale=1.0, dpi=96)
Färger och bakgrund
Ange foreground_color och background_color som CSS-färgssträngar. Aktivera transparent_background för att utelämna bakgrundsfyllningen (användbart för överlagring på befintliga designer).
from aspose_barcode_foss import BarcodeService, RenderOptions
service = BarcodeService()
barcode = service.generate("qrcode", "https://example.com")
options = RenderOptions(
foreground_color="#003366",
background_color="#FFFFFF",
scale=3.0,
)
svg = barcode.to_svg(options)
Kontroll av tyst zon
quiet_zone-egenskapen anger den tomma marginalen runt streckkoden i enheter av modulbredd. De flesta streckkodstandarder kräver en minsta tyst zon för pålitlig avläsning.
from aspose_barcode_foss import BarcodeService, RenderOptions
service = BarcodeService()
barcode = service.generate("code39", "QUIET-ZONE")
# Wider quiet zone for print use
options = RenderOptions(quiet_zone=10.0, scale=2.0)
svg = barcode.to_svg(options)
Mänskligt läsbar text
Ställ in show_text=True för att visa den kodade datan under streckkoden. Egenskaperna font_family och font_size styr textens utseende.
from aspose_barcode_foss import BarcodeService, RenderOptions
service = BarcodeService()
barcode = service.generate("upca", "01234567890")
options = RenderOptions(
show_text=True,
font_family="monospace",
font_size=12.0,
scale=2.5,
)
svg = barcode.to_svg(options)
Snabbstart
asposefoss/barcode is not yet published — build from source until it ships. See the project README for build instructions.from aspose_barcode_foss import BarcodeService, RenderOptions
service = BarcodeService()
# Generate a Code 128 barcode
barcode = service.generate("code128", "HELLO-2026")
# Render to SVG with custom options
options = RenderOptions(
scale=2.0,
show_text=True,
foreground_color="#000000",
background_color="#FFFFFF",
quiet_zone=4.0,
)
svg_output = barcode.to_svg(options)
with open("hello.svg", "w") as f:
f.write(svg_output)
# Render to PNG at 300 DPI
png_bytes = barcode.to_png(RenderOptions(dpi=300, scale=3.0))
with open("hello.png", "wb") as f:
f.write(png_bytes)
Stödda format
| Format | Filändelse | Läs | Skriv |
|---|---|---|---|
| SVG | .svg | — | ✓ |
| PNG | .png | — | ✓ |
Obs: PdfRenderer finns i API men ger upphov till NotImplementedError i den nuvarande versionen.
Öppen källkod & licensiering
Aspose.BarCode FOSS för Python är släppt under MIT-licensen. Källkoden finns på GitHub. Du kan använda, modifiera och distribuera biblioteket i både open-source- och kommersiella projekt.