Barkod Rendering

Barkod Rendering

Aspose.BarCode FOSS for Python separates encoding from rendering. After a barcode is encoded into an EncodedSymbol,A Renderer Modül matrisini görsel çıkışa dönüştürür. kütüphane içerir SvgRenderer ve PngRenderer.


RenderOptions

RenderOptions Tüm Render’ın görsel çıkışını kontrol eder. to_svg() veya to_png() Herhangi bir Barcode nesne :

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,
))
PropertyTypeDescription
scalefloatTüm çubuk kodu için tek ölçekli çoğaltma makinesi
dpiintPNG çıkışı için çözünürlük (SVG üzerinde hiçbir etkisi yoktur)
module_widthfloatKullanıcı birimlerinde tek bir çubuk kodu modülünün genişliği
module_heightfloatKullanıcı birimlerinde tek bir çubuk kodu modülünün yüksekliği
quiet_zonefloatWhiteespace barkodun etrafında kaydırma
foreground_colorstrBarlar ve modüller için hex renk (örneğin,., "#000000")
background_colorstrHex renk arka plan için
transparent_backgroundboolPNG üretimi için şeffaf arka plan
show_textboolBarkodun altında insan okunabilir metin göster
font_familystrİnsan okunabilir metin için yazı tipi
font_sizefloatİnsan okunabilir metin için yazı tipi boyutu

ResolvedRenderOptions

ResolvedRenderOptions Bu, üretilen tamamen birleşik yapılandırma OptionsResolver.resolve().Kullanıcı tarafından sağlanan birleştirme RenderOptions ile de SymbologyProfile Tüm özellikler belirli değerlere sahiptir (hayır) None).

O zamanlar Barcode.default_render_options Mülkiyetin tuttuğu RenderOptions Yüzyılda yaşanan olaylar (veya None Eğer teslim edilmezse).


SVG çıkış

SvgRenderer SGK üretti. çağrı to_svg() A üzerinde Barcode nesne :

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() geri döner a str Tüm SVG belgesini içerir.


PNG çıkışları

PngRenderer PNG üretti. çağrı to_png() A üzerinde Barcode nesne :

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() Geri dönüş bytes PNG görüntü verilerini içerir.


Renderer Abstraksiyonu

O zamanlar Renderer Abstrak baz sınıfı, tüm renderler için arayüzü tanımlar:

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

SvgRenderer ve PngRenderer bu arayüzü uygulayın. arama yapabilirsiniz Barcode.render(renderer, options) Doğrudan bir render kullanmak için:

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

O zamanlar RenderedArtifact Geri döndü Renderer.render() içerir :

PropertyTypeDescription
data`strbytes`
media_typestrMİLLİ ("image/svg+xml" veya "image/png")
backendstrRenderer tanımlayıcı

Yazı Layout

Her bir simbolun bir TextLayoutPolicy İnsan okuma metnin çubuk kodu altında nasıl yerleştirildiğini belirler. create_layout(symbol, options) Metoda A’ya geri dönüyor TextLayout içeriyor TextSegment Konumu ve metin verileri ile nesneler.

QR Kodu Kullanımı QrTextLayoutPolicy, bir no-op düzen sağlar (QR kodları insan okunabilir metni göstermez).


İpuçları ve En İyi Uygulamalar

  • Kullanım scale Birleşik boyut ve module_width/module_height Doğru boyut kontrolü için - ikisini de birleştirmeyin.
  • Setleri dpi=300 baskı kalitesi PNG çıkışı için; varsayılan olarak ekran çözünürlüğü.
  • Kullanım transparent_background=True renkli arka planlarda yüklenecek PNG çubuk kodları için.
  • foreground_color ve background_color * Sıcak renkli hex ("#RRGGBB").
  • SVG çıkışı çözünürlük bağımsızdır - web ve PDF içeriği için SV G’yi tercih eder.

ortak sorunlar

IssueCauseFix
PNG çok küçük görünüyorDefault ölçeği 1.0Increase scale veya set dpi
Görünmez Yazılarshow_text default için FalseSetleri show_text=True
QR kodu metin yokQR simbololojisi insan okunabilir metni desteklemezBeklenen davranış – QR No-op metin düzenini kullanır
Kullanılmayan renklerMülkiyet Adı KayıpDoğru mülk isimleri kullanın: foreground_color, background_color

See Also

 Türkçe