Bekerja dengan opsi enkoding
Bekerja dengan opsi enkoding
Setiap simbol kode batang di Aspose.BarCode FOSS untuk Python memiliki kelas opsi khusus yang mengontrol perilaku pengkodean. Semua kelas pilihan mewarisi dari EncodeOptions, yang menyediakan: gs1_enabled dan (b) eci_assignment_number sifat yang dibagikan melalui simbol.
Code128Options
Code128Options mengontrol yang kode 128 karakter menetapkan encoder memilih. encode_mode properti menerima a Code128EncodeMode nilai enum.
| Mode | Description |
|---|---|
AUTO | Memilih pengkodean paling kompak secara otomatis |
CODE_A | Huruf besar, angka dan karakter kontrol |
CODE_B | Huruf besar, huruf kecil dan angka |
CODE_C | Pasangan digit dioptimalkan untuk data numerik saja |
CODE_AB | Pergeseran antara Kode A dan Kodes B |
CODE_AC | Pergeseran antara Kode A dan Kodo C |
CODE_BC | Pergeseran antara Kode B dan Kodes C |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))
# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))
# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))Code39Options
Code39Options mengontrol apakah encoder menggunakan basis 43-karakter set atau Full ASCII ekstensi.
| Property | Type | Default | Description |
|---|---|---|---|
full_ascii | bool | None | Aktifkan mode ASCII penuh (jarak 128 karakter melalui pasangan shift) |
add_check_digit | bool | None | Tambahkan digit kontrol modulo-43 |
from aspose_barcode_foss import Code39Options
# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")
# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
"Hello, World!",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)Opsi Qr
QrOptions memiliki permukaan paling konfigurasi di antara semua simbol.
| Property | Type | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%), M (15%), Q 25%), H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (controls symbol dimensions) |
mask | int | 0–7 (manual mask pattern selection) |
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
# High error correction with byte encoding
bc = barcode.qr(
"https://example.com",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.H,
encoding_mode=QrEncodeMode.BYTE,
),
)
# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
"0123456789",
encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)
# Explicit version and mask
bc_v5 = barcode.qr(
"TEST",
encode=QrOptions(version=5, mask=3),
)Ean13Options
Ean13Options kontrol penanganan digit cek untuk barcode EAN-13.
| Property | Type | Default | Description |
|---|---|---|---|
allow_check_digit_input | bool | None | Menerima input 13 digit dengan pra-menghitung angka cek |
from aspose_barcode_foss import Ean13Options
# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")
# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)Ean8Options
Ean8Options bekerja sama dengan Ean13Options tapi untuk barcode EAN 8 digit. suplai 7 angka muatan (perpustakaan menghitung yang ke-8) atau set allow_check_digit_input=True untuk input delapan digit.
from aspose_barcode_foss import Ean8Options
bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))UpcaOptions dan UpceOption
UpcaOptions dan (b) UpceOptions Ikuti yang sama. allow_check_digit_input pola sebagai opsi EAN. UpceOptions juga memiliki number_system properti.
from aspose_barcode_foss import UpcaOptions, UpceOptions
# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")
# UPC-E with pre-computed check digit
bc_e = barcode.upce(
"01234565",
encode=UpceOptions(allow_check_digit_input=True),
)Properti dasar EncodeOptions
Semua kelas opsi mewarisi sifat-sifat ini dari EncodeOptions:
| Property | Type | Description |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Tips dan Praktik Terbaik
- Penggunaan
Code128EncodeMode.AUTOkecuali Anda memiliki alasan khusus untuk membatasi set karakter menghasilkan barcode terpendek untuk input apa pun. - Set (set)
QrErrorCorrectionLevel.Huntuk kode QR yang akan dicetak pada permukaan yang rentan terhadap kerusakan. - Biarkan perpustakaan menghitung digit cek secara default hanya ditetapkan
allow_check_digit_input=Truesaat menerima data yang telah divalidasi sebelumnya dari sistem lain. - Penggunaan
QrEncodeMode.NUMERICuntuk data QR digit saja, agar ukuran simbol diminimalkan.
Masalah Umum
| Issue | Cause | Perbaiki |
|---|---|---|
InvalidInputError pada Kode 39 | Input berisi huruf kecil | Set (set) full_ascii=True di dalam Code39Options |
| Kode QR terlalu besar | Versi yang ditetapkan terlalu rendah untuk panjang data | Menghapus eksplisit version atau menambahnya. |
| Salah digit cek pada EAN-13 | 13-digit input without allow_check_digit_input=True | Loloskan 12 digit (otomatis) atau atur opsi untuk True |
SymbologyNotFoundError | Nama simbol yang salah ejaan di generate() | Gunakan salah satu: code128, code39, ean13, ean8, qr, upca, upce |