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 :
- bakın yukarıda
SymbologyDefinitionKayıttan - Çağırıyorlar
InputParser.parse()Girişlerin normalleştirilmesi ve doğrulanması için - Çağırıyorlar
SymbologyEncoder.encode()Bir üretici üretmek içinEncodedSymbol - A’ya geri dönüyor
BarcodeSimbol ve profilini oluşturmak için
SymbologyRegistry
SymbologyRegistry mağazalar SymbologyDefinition Kanonik isimler ve aliaslar ile anahtar olan nesneler:
| Method | Description |
|---|---|
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:
| Property | Type | Description |
|---|---|---|
name | str | Canonik Simbololoji Tanıtıcıları |
parser | InputParser | Giriş verilerini doğrulamak ve normalleştirmek |
encoder | SymbologyEncoder | Modül Matrisine Göre Bilgiler |
profile | SymbologyProfile | Eksiklikler, yetenekler ve metin politikası |
aliases | tuple[str, ...] | Alternatif isimler arama için |
EncodedSymbol
O zamanlar EncodedSymbol Bir kod ile geri dönüştürülmüş şunları içerir:
matrix- AModuleMatrixBarkodun mantıksal modül ağı ilemetadata- ASymbolMetadatasimboloji 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:
| Property | Description |
|---|---|
symbology | Canonik Simbolizm Adı |
data | Bilgi Teknolojileri (str veya bytes) |
input_kind | Nasıl sınıflandırılmıştır giriş |
code128_encode_mode | Çözülen Kodu 128 modu (eğer uygulanırsa) |
code39_encode_mode | 39 Modu (Gelecek Olursanız) |
qr_error_correction_level | QR 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:
| Method | Description |
|---|---|
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) yerinegenerate()Tip güvenliği için - doğru seçenek sınıfı kullanıldığını sağlar. - O zamanlar
Barcode.symbolMülkiyet doğrudan erişim sağlarEncodedSymbolÖzel render veya analiz için. BarcodeServicestateless - bir örnek, çoklu teller üzerinden çubuk kodları oluşturabilir.- Catch
BarcodeErrorBir temel sınıf olarak, tek bir blokta tüm çubuk kodu ile ilgili istisnaları ele almak.
ortak sorunlar
| Issue | Cause | Fix |
|---|---|---|
SymbologyNotFoundError | Adı: kayıtlı olmayan SymbologyRegistry | Kanonik isimler kullanın; kanonlı isimleri kullanmak. |
InvalidInputError | Bilgiler simbolik gereksinimleri ihlal eder | Karakter ayarlarını ve uzunluk gereksinimlerini kontrol edin |
| boş SVG çıkış | Modüller kodlanmıyor | Veri verileri boş ve simbol için geçerli değildir |