Generasi Barcode

Generasi Barcode

Generasi Barcode

Pipeline generasi barcode di Aspose.BarCode FOSS untuk Python mengikuti arsitektur tiga tahap: parse → encode → render.API tingkat tinggi (generate() dan per-simbolik pembantu) orkestrasi tahap ini melalui BarcodeService.


API Generasi Tingkat Tinggi

Cara paling sederhana untuk menghasilkan barcode adalah melalui fungsi pembantu per-symbology:

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")

Setiap pembantu mengembalikan sebuah Barcode obyek. panggilan to_svg() untuk output SVG, atau to_png() untuk output PNG.

Generik generate() fungsi menerima string nama simbologi:

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

Nama simbologi yang valid: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService mengkoordinasikan tiga tahap pipa. SymbologyRegistry dan sebuah 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")

Pengelolaan generate() metode:

  1. Mencari ke atas SymbologyDefinition dari registry
  2. Panggillah… InputParser.parse() untuk memvalidasi dan menormalkan input
  3. Panggillah… SymbologyEncoder.encode() untuk menghasilkan sebuah EncodedSymbol
  4. Mengembalikan a Barcode membungkus simbol dan profilnya

SymbologyRegistry

SymbologyRegistry toko-toko SymbologyDefinition objek yang diketikkan dengan nama kanonik dan alias:

MethodDescription
get_definition(name)Memperoleh definisi simbologi lengkap
get_parser(name)Ambillah… InputParser untuk simbolologi
get_encoder(name)Ambillah… SymbologyEncoder untuk simbolologi
get_profile(name)Ambillah… SymbologyProfile dengan default
get_text_policy(name)Ambillah… TextLayoutPolicy untuk render teks
register(definition)Mendaftarkan yang baru. SymbologyDefinition

EncoderRegistry adalah alias yang kompatibel ke belakang untuk SymbologyRegistry.


SymbologyDefinition

A. Tidak ada SymbologyDefinition mengelompokkan semua komponen yang diperlukan untuk mendukung satu simbolologi:

PropertyTypeDescription
namestrIdentifikasi simbologi kanonik
parserInputParserMemvalidasi dan menormalkan data input
encoderSymbologyEncoderMengenkode data ke dalam matriks modul
profileSymbologyProfileStandar, kemampuan dan kebijakan teks
aliasestuple[str, ...]Nama alternatif untuk pencarian

EncodedSymbol

Pengelolaan EncodedSymbol yang dikembalikan oleh encoder berisi:

  • matrix a ModuleMatrix dengan grid modul logis kode bar,
  • metadata a SymbolMetadata dengan nama simbologi, teks tampilan dan rincian pengkodean
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 memberikan sebuah get(x, y) metode yang mengembalikan nilai modul pada posisi tertentu.


NormalizedPayload

Pengelolaan NormalizedPayload adalah representasi perantara antara parsing dan pengkodean:

PropertyDescription
symbologyNama simbologi kanonik
dataData input yang divalidasi (str atau: bytes)
input_kindBagaimana input diklasifikasikan
code128_encode_modeMode kode 128 yang telah dipecahkan (jika berlaku)
code39_encode_modeMode Kode 39 yang Terpecahkan (jika berlaku)
qr_error_correction_levelKoreksi kesalahan QR yang telah diselesaikan (jika berlaku)
qr_versionVersi QR yang terpecahkan (jika berlaku)
qr_encoding_modeMode pengkodean QR yang terjawab (jika berlaku)

OptionsResolver

OptionsResolver menggabungkan opsi render yang disediakan pengguna dengan standar simbologi:

MethodDescription
resolve(profile, options)Menghasilkan a ResolvedRenderOptions dengan menggabungkan opsi pengguna dengan default profil
merge_options(earlier, later)Gabungan dua RenderOptions (nilai yang lebih lanjut di-override)
coerce_options(options)Menormalkan opsi mentah menjadi RenderOptions

Tips dan Praktik Terbaik

  • Gunakan per-simbologi pembantu (code128(), qr(), dll) sebagai pengganti generate() untuk keamanan tipe mereka memastikan bahwa kelas opsi yang benar digunakan.
  • Pengelolaan Barcode.symbol properti memberikan akses langsung ke EncodedSymbol untuk render atau analisis khusus.
  • BarcodeService adalah stateless satu instance dapat menghasilkan barcode di beberapa thread.
  • Catch BarcodeError sebagai kelas dasar untuk menangani semua pengecualian yang terkait dengan kode bar dalam satu blok.

Masalah Umum

IssueCausePerbaiki
SymbologyNotFoundErrorNama tidak terdaftar di: SymbologyRegistryPeriksa ejaan; gunakan nama kanonik
InvalidInputErrorData melanggar persyaratan simbologiPeriksa persyaratan set karakter dan panjang
Keluar SVG kosongTidak ada modul yang dikodekan.Verifikasi data tidak kosong dan valid untuk simbologi

See Also

 Bahasa Indonesia