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
| Symbology | Jenis | Set Karakter | Kapasitas Data | Digit Pemeriksaan |
|---|---|---|---|---|
| Code 128 | 1D | ASCII Penuh (128 karakter) | Panjang variabel | Otomatis (mod-103) |
| Code 39 | 1D | A–Z, 0–9, dan 7 karakter khusus (basis); ASCII penuh (ekstensi) | Panjang variabel | Optional |
| EAN-13 | 1D | Hanya numerik (0–9) | 12 digit data + 1 digit cek | Automatic |
| EAN-8 | 1D | Hanya numerik (0–9) | 7 digit data + 1 digit cek | Automatic |
| QR Code | 2D | Numerik, alfanumerik, byte, dan Kanji | Hingga 7.089 numerik / 4.296 alfanumerik | Otomatis (Reed-Solomon) |
| UPC-A | 1D | Hanya numerik (0–9) | 11 digit data + 1 digit pemeriksaan | Automatic |
| UPC-E | 1D | Hanya 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 Penggunaan | Simbolik yang Direkomendasikan | Reason |
|---|---|---|
| Inventaris gudang | Code 128 | ASCII penuh, kepadatan tinggi, panjang variabel |
| Label Militer/LOGMARS | Code 39 | Adopsi luas dalam sistem pemerintah |
| Ritel internasional | EAN-13 | GTIN-13 standar |
| Kemasan ritel kecil | EAN-8 atau UPC-E | Ukuran fisik yang kompak |
| Ritel Amerika Utara | UPC-A | GTIN-12 standar |
| URL dan tautan seluler | QR Code | Kapasitas tinggi, pemindaian 2D |
| Pemasaran dan cetak | QR Code | Dapat dipindai oleh kamera ponsel |
| Nomor seri semua numerik | Code 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.Huntuk 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=TruedalamRenderOptionsuntuk label yang dapat dibaca manusia sehingga operator dapat memverifikasi data yang dipindai secara visual
Masalah Umum
| Masalah | Penyebab | Perbaikan |
|---|---|---|
InvalidInputError pada EAN-13 | Karakter non-numerik dalam data | EAN-13 hanya menerima digit 0–9 |
InvalidInputError pada Code 39 | Huruf kecil dalam mode dasar | Atur Code39Options(full_ascii=True) |
| QR code terlalu besar | Versi terlalu rendah untuk panjang data | Biarkan perpustakaan memilih versi secara otomatis, atau tingkatkan QrOptions.version |
UPC-E InvalidInputError | Data tidak cocok dengan pola penekanan nol | Verifikasi 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 / Metode | Deskripsi |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Hasilkan kode batang untuk semua simbolologi yang terdaftar |
Code128Options | Opsi enkoding untuk Code 128 (mode enkode, GS1, ECI) |
Code128EncodeMode | Enum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC |
Code39Options | Opsi pengkodean untuk Code 39 (ASCII lengkap, digit cek) |
Code39EncodeMode | Enum: BASE, FULL_ASCII |
Ean13Options | Opsi pengkodean untuk EAN-13 (input digit cek) |
Ean8Options | Opsi pengkodean untuk EAN-8 (input digit cek) |
QrOptions | Opsi pengkodean untuk QR Code (koreksi kesalahan, versi, mask, mode) |
QrEncodeMode | Enum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
QrErrorCorrectionLevel | Enum: L, M, Q, H |
UpcaOptions | Opsi pengkodean untuk UPC-A |
UpceOptions | Opsi pengkodean untuk UPC-E |
SymbologyRegistry | Menyelesaikan nama simbolologi dan memberikan definisi |