Memilih Simbologi Barcode

Memilih Simbologi Barcode

Aspose.BarCode FOSS untuk Python mendukung tujuh simbologi. Masing-masing cocok untuk tipe data yang berbeda, lingkungan pemindaian, dan standar industri. Panduan ini mencakup karakteristik setiap simbologi dan kapan menggunakannya.


Gambaran Umum Simbologi

SymbologyJenisSet KarakterKapasitas DataDigit Pemeriksaan
Code 1281DASCII Penuh (128 karakter)Panjang variabelOtomatis (mod-103)
Code 391DA–Z, 0–9, dan 7 karakter khusus (basis); ASCII penuh (ekstensi)Panjang variabelOptional
EAN-131DHanya numerik (0–9)12 digit data + 1 digit cekAutomatic
EAN-81DHanya numerik (0–9)7 digit data + 1 digit cekAutomatic
QR Code2DNumerik, alfanumerik, byte, dan KanjiHingga 7.089 numerik / 4.296 alfanumerikOtomatis (Reed-Solomon)
UPC-A1DHanya numerik (0–9)11 digit data + 1 digit pemeriksaanAutomatic
UPC-E1DHanya numerik (0–9)6 digit data (dikompresi UPC-A)Automatic

Code 128

Code 128 mengkodekan seluruh set karakter ASCII dengan kepadatan tinggi. Ia menggunakan tiga set karakter (A, B, C) dan beralih di antara mereka secara otomatis dalam mode AUTO.

Terbaik untuk: label inventaris, label pengiriman, data alfanumerik umum.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code128Options, Code128EncodeMode

service = BarcodeService()

# Auto mode — library selects optimal character sets
barcode = service.generate("code128", "INV-2026-00451")

# Force Code C for all-numeric data (higher density)
barcode = service.generate(
    "code128", "123456789012",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = barcode.to_svg()

Code 39

Code 39 mendukung huruf kapital, angka, dan 7 karakter khusus dalam mode dasar. Aktifkan full_ascii=True untuk mengkodekan seluruh rentang ASCII. Digit pemeriksaan opsional dapat ditambahkan melalui add_check_digit.

Terbaik untuk: label industri, pengidentifikasi pemerintah/militer (LOGMARS), dan lingkungan di mana kesederhanaan lebih penting daripada kepadatan.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code39Options

service = BarcodeService()

# Base mode — uppercase + digits + special chars
barcode = service.generate("code39", "PART-A1234")

# Full ASCII mode with check digit
barcode = service.generate(
    "code39", "Part-a1234",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = barcode.to_svg()

EAN-13

EAN-13 adalah kode batang standar untuk produk ritel di luar Amerika Utara. Ia mengkodekan tepat 12 digit data; digit ke-13 adalah digit pemeriksaan yang dihitung secara otomatis. Gunakan Ean13Options untuk mengontrol perilaku input digit pemeriksaan.

Terbaik untuk: identifikasi produk ritel, barang perdagangan internasional (GTIN-13).

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options

service = BarcodeService()

# 12 data digits — check digit computed
barcode = service.generate("ean13", "590123412345")

# With rendering options for human-readable text
from aspose_barcode_foss import RenderOptions
svg = barcode.to_svg(RenderOptions(show_text=True, scale=2.0))

EAN-8

EAN-8 adalah versi kompak dari EAN-13, digunakan pada paket ritel kecil di mana ruang terbatas. Ia mengkodekan 7 digit data plus 1 digit pemeriksaan.

Terbaik untuk: produk ritel kecil, barang dengan ruang label terbatas.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()

QR Code

QR Code adalah simbol matriks 2D yang menyimpan sejumlah besar data dalam area kecil. Ia mendukung empat mode enkoding melalui QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE, dan KANJI. Koreksi kesalahan dapat dikonfigurasi melalui QrErrorCorrectionLevel (L, M, Q, H).

Terbaik untuk: URL, aplikasi seluler, materi pemasaran, dan semua kasus penggunaan yang memerlukan kapasitas data tinggi atau karakter non-ASCII.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

service = BarcodeService()

# Default settings
barcode = service.generate("qrcode", "https://example.com")

# High error correction for printed labels
barcode = service.generate(
    "qrcode", "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)
png = barcode.to_png()

UPC-A

UPC-A adalah kode batang standar untuk produk ritel di Amerika Utara. Ia mengkodekan 11 digit data plus 1 digit pemeriksaan. UPC-A adalah subset dari EAN-13 dengan awalan nol.

Terbaik untuk: identifikasi produk ritel Amerika Utara (GTIN-12).

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()

UPC-E

UPC-E adalah bentuk terkompresi dari UPC-A untuk barang ritel kecil. Ia mengkodekan 6 digit data dengan menghilangkan nol dari representasi UPC-A lengkap.

Terbaik untuk: barang ritel kecil, kupon, dan label di mana ruang terbatas.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()

Panduan Keputusan

Gunakan tabel ini untuk memilih simbolologi yang tepat untuk aplikasi Anda:

Kasus PenggunaanSimbolik yang DirekomendasikanReason
Inventaris gudangCode 128ASCII penuh, kepadatan tinggi, panjang variabel
Label Militer/LOGMARSCode 39Adopsi luas dalam sistem pemerintah
Ritel internasionalEAN-13GTIN-13 standar
Kemasan ritel kecilEAN-8 atau UPC-EUkuran fisik yang kompak
Ritel Amerika UtaraUPC-AGTIN-12 standar
URL dan tautan selulerQR CodeKapasitas tinggi, pemindaian 2D
Pemasaran dan cetakQR CodeDapat dipindai oleh kamera ponsel
Nomor seri semua numerikCode 128 (Code C)Kepadatan tertinggi untuk data numerik

Tips dan Praktik Terbaik

  • Gunakan Code 128 sebagai default untuk label tujuan umum — ia menawarkan rasio kepadatan-ke-kompatibilitas terbaik di antara simbolologi 1D
  • Untuk produk ritel, gunakan simbolologi yang diwajibkan oleh pasar Anda: EAN-13 untuk internasional, UPC-A untuk Amerika Utara
  • Atur QrErrorCorrectionLevel.H untuk kode QR yang akan dicetak pada label yang terpapar keausan atau kerusakan parsial
  • Selalu biarkan perpustakaan menghitung digit pemeriksaan secara otomatis daripada menyediakannya secara manual
  • Gunakan show_text=True dalam RenderOptions untuk label yang dapat dibaca manusia sehingga operator dapat memverifikasi data yang dipindai secara visual

Masalah Umum

MasalahPenyebabPerbaikan
InvalidInputError pada EAN-13Karakter non-numerik dalam dataEAN-13 hanya menerima digit 0–9
InvalidInputError pada Code 39Huruf kecil dalam mode dasarAtur Code39Options(full_ascii=True)
QR code terlalu besarVersi terlalu rendah untuk panjang dataBiarkan perpustakaan memilih versi secara otomatis, atau tingkatkan QrOptions.version
UPC-E InvalidInputErrorData tidak cocok dengan pola penekanan nolVerifikasi format UPC-E 6 digit atau gunakan UPC-A sebagai gantinya

FAQ

Bisakah saya menggunakan Code 128 untuk data semua-numerik?

Ya. Mode Code 128 Code C (Code128EncodeMode.CODE_C) dioptimalkan untuk data semua-numerik, mengkodekan pasangan digit dalam satu karakter simbol untuk kepadatan maksimum.

Apa perbedaan antara EAN-13 dan UPC-A?

UPC-A adalah subset 12 digit dari EAN-13. Kode UPC-A dapat direpresentasikan sebagai EAN-13 dengan nol di depan. Mereka secara fungsional kompatibel dalam sistem pemindaian ritel.

Simbol mana yang mendukung data paling banyak?

QR Code mendukung hingga 7,089 karakter numerik atau 4,296 karakter alfanumerik. Semua simbologi 1D dalam perpustakaan ini mendukung data dengan panjang variabel, tetapi QR Code memiliki kapasitas tertinggi.

Apakah saya dapat mencampur simbologi dalam satu aplikasi?

Ya. Buat satu instance BarcodeService dan panggil generate() dengan nama simbologi yang berbeda untuk setiap kode batang. Layanan menyelesaikan setiap simbologi melalui SymbologyRegistry.


Ringkasan API Reference

Kelas / MetodeDeskripsi
BarcodeService.generate(symbology, data, encode, render)Hasilkan kode batang untuk semua simbolologi yang terdaftar
Code128OptionsOpsi enkoding untuk Code 128 (mode enkode, GS1, ECI)
Code128EncodeModeEnum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC
Code39OptionsOpsi pengkodean untuk Code 39 (ASCII lengkap, digit cek)
Code39EncodeModeEnum: BASE, FULL_ASCII
Ean13OptionsOpsi pengkodean untuk EAN-13 (input digit cek)
Ean8OptionsOpsi pengkodean untuk EAN-8 (input digit cek)
QrOptionsOpsi pengkodean untuk QR Code (koreksi kesalahan, versi, mask, mode)
QrEncodeModeEnum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
QrErrorCorrectionLevelEnum: L, M, Q, H
UpcaOptionsOpsi pengkodean untuk UPC-A
UpceOptionsOpsi pengkodean untuk UPC-E
SymbologyRegistryMenyelesaikan nama simbolologi dan memberikan definisi

Lihat Juga

 Bahasa Indonesia