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,
))| Property | Type | Description |
|---|---|---|
scale | float | Tüm çubuk kodu için tek ölçekli çoğaltma makinesi |
dpi | int | PNG çıkışı için çözünürlük (SVG üzerinde hiçbir etkisi yoktur) |
module_width | float | Kullanıcı birimlerinde tek bir çubuk kodu modülünün genişliği |
module_height | float | Kullanıcı birimlerinde tek bir çubuk kodu modülünün yüksekliği |
quiet_zone | float | Whiteespace barkodun etrafında kaydırma |
foreground_color | str | Barlar ve modüller için hex renk (örneğin,., "#000000") |
background_color | str | Hex renk arka plan için |
transparent_background | bool | PNG üretimi için şeffaf arka plan |
show_text | bool | Barkodun altında insan okunabilir metin göster |
font_family | str | İnsan okunabilir metin için yazı tipi |
font_size | float | İ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 :
| Property | Type | Description |
|---|---|---|
data | `str | bytes` |
media_type | str | MİLLİ ("image/svg+xml" veya "image/png") |
backend | str | Renderer 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
scaleBirleşik boyut vemodule_width/module_heightDoğru boyut kontrolü için - ikisini de birleştirmeyin. - Setleri
dpi=300baskı kalitesi PNG çıkışı için; varsayılan olarak ekran çözünürlüğü. - Kullanım
transparent_background=Truerenkli arka planlarda yüklenecek PNG çubuk kodları için. foreground_colorvebackground_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
| Issue | Cause | Fix |
|---|---|---|
| PNG çok küçük görünüyor | Default ölçeği 1.0 | Increase scale veya set dpi |
| Görünmez Yazılar | show_text default için False | Setleri show_text=True |
| QR kodu metin yok | QR simbololojisi insan okunabilir metni desteklemez | Beklenen davranış – QR No-op metin düzenini kullanır |
| Kullanılmayan renkler | Mülkiyet Adı Kayıp | Doğru mülk isimleri kullanın: foreground_color, background_color |