Barkod nesil

Barkod nesil

Aspose.BarCode FOSS’ta çubuk kodu üretimi hattı, Python için üç aşamalı bir mimariye göre yapılır: parse → kodlama → render.Yüksek Kalite (generate() ve per-symbology yardımcıları) bu aşamaları orkestrasyonu BarcodeService.


Yüksek Sınıf API

Bir çubuk kodu oluşturmanın en basit yolu, per-symbology yardımcı fonksiyonları aracılığıyla:

import aspose_barcode_foss as barcode

bc_128 = barcode.code128("ABC123")
bc_qr = barcode.qr("https://example.com")
bc_ean = barcode.ean13("590123412345")
bc_upca = barcode.upca("01234567890")

Her yardımcının bir Barcode Konu : Çağrı to_svg() SGK üretimi veya to_png() PNG üretimi için.

Genetik generate() fonksiyon bir simbolik adı çubuğunu kabul eder:

bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()

Simbolik isimler için: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService 3 adet boru hattı ile koordine edilir. bir SymbologyRegistry ve bir OptionsResolver:

from aspose_barcode_foss import BarcodeService

# The default service is used by all helper functions
# You can create a custom service for testing or extension:
service = BarcodeService(registry=registry, options_resolver=resolver)
result = service.generate("code128", "DATA")

O zamanlar generate() Yöntem :

  1. bakın yukarıda SymbologyDefinition Kayıttan
  2. Çağırıyorlar InputParser.parse() Girişlerin normalleştirilmesi ve doğrulanması için
  3. Çağırıyorlar SymbologyEncoder.encode() Bir üretici üretmek için EncodedSymbol
  4. A’ya geri dönüyor Barcode Simbol ve profilini oluşturmak için

SymbologyRegistry

SymbologyRegistry mağazalar SymbologyDefinition Kanonik isimler ve aliaslar ile anahtar olan nesneler:

MethodDescription
get_definition(name)Tam bir simbololojik tanımlama
get_parser(name)Get the alın InputParser Bir simbol için
get_encoder(name)Get the alın SymbologyEncoder Bir simbol için
get_profile(name)Get the alın SymbologyProfile default ile
get_text_policy(name)Get the alın TextLayoutPolicy Rendering için
register(definition)Yeni bir kayıt SymbologyDefinition

EncoderRegistry arka arkaya uyumlu bir alias SymbologyRegistry.


SymbologyDefinition

A SymbologyDefinition Bir simbololojiyi desteklemek için gerekli tüm bileşenleri birleştirin:

PropertyTypeDescription
namestrCanonik Simbololoji Tanıtıcıları
parserInputParserGiriş verilerini doğrulamak ve normalleştirmek
encoderSymbologyEncoderModül Matrisine Göre Bilgiler
profileSymbologyProfileEksiklikler, yetenekler ve metin politikası
aliasestuple[str, ...]Alternatif isimler arama için

EncodedSymbol

O zamanlar EncodedSymbol Bir kod ile geri dönüştürülmüş şunları içerir:

  • matrix - A ModuleMatrix Barkodun mantıksal modül ağı ile
  • metadata - A SymbolMetadata simboloji adı, görüntü metni ve kodlama ayrıntıları ile
bc = barcode.code128("TEST")
symbol = bc.symbol

print(f"Matrix: {symbol.matrix.width}x{symbol.matrix.height}")
print(f"Display text: {symbol.metadata.display_text}")
print(f"Symbology: {symbol.metadata.symbology}")

ModuleMatrix A sağlar get(x, y) Modül değerini belirli bir pozisyonda geri getiren yöntem.


NormalizedPayload

O zamanlar NormalizedPayload Parsing ve kodlama arasındaki orta temsilcilik:

PropertyDescription
symbologyCanonik Simbolizm Adı
dataBilgi Teknolojileri (str veya bytes)
input_kindNasıl sınıflandırılmıştır giriş
code128_encode_modeÇözülen Kodu 128 modu (eğer uygulanırsa)
code39_encode_mode39 Modu (Gelecek Olursanız)
qr_error_correction_levelQR hatası düzeltme (eğer uygulanırsa)
qr_versionÇözülmüş QR versiyonu (eğer uygulanırsa)
qr_encoding_modeÇözülen QR kodlama modu (eğer uygulanırsa)

OptionsResolver

OptionsResolver Kullanıcı tarafından sağlanan render seçenekleri simboloji varsayımları ile birleştirilir:

MethodDescription
resolve(profile, options)üretmek a ResolvedRenderOptions Kullanıcı seçenekleri profil varsayımları ile birleştirerek
merge_options(earlier, later)2 Birleşme RenderOptions (Gelecek değerler aşırı)
coerce_options(options)Yakıt seçeneklerini normalleştirmek için RenderOptions

İpuçları ve En İyi Uygulamalar

  • Yorumlar için tıklayınız (code128(), qr(),(D) yerine generate() Tip güvenliği için - doğru seçenek sınıfı kullanıldığını sağlar.
  • O zamanlar Barcode.symbol Mülkiyet doğrudan erişim sağlar EncodedSymbol Özel render veya analiz için.
  • BarcodeService stateless - bir örnek, çoklu teller üzerinden çubuk kodları oluşturabilir.
  • Catch BarcodeError Bir temel sınıf olarak, tek bir blokta tüm çubuk kodu ile ilgili istisnaları ele almak.

ortak sorunlar

IssueCauseFix
SymbologyNotFoundErrorAdı: kayıtlı olmayan SymbologyRegistryKanonik isimler kullanın; kanonlı isimleri kullanmak.
InvalidInputErrorBilgiler simbolik gereksinimleri ihlal ederKarakter ayarlarını ve uzunluk gereksinimlerini kontrol edin
boş SVG çıkışModüller kodlanmıyorVeri verileri boş ve simbol için geçerli değildir

See Also

 Türkçe