Bekerja dengan opsi enkoding

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.

ModeDescription
AUTOMemilih pengkodean paling kompak secara otomatis
CODE_AHuruf besar, angka dan karakter kontrol
CODE_BHuruf besar, huruf kecil dan angka
CODE_CPasangan digit dioptimalkan untuk data numerik saja
CODE_ABPergeseran antara Kode A dan Kodes B
CODE_ACPergeseran antara Kode A dan Kodo C
CODE_BCPergeseran 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.

PropertyTypeDefaultDescription
full_asciiboolNoneAktifkan mode ASCII penuh (jarak 128 karakter melalui pasangan shift)
add_check_digitboolNoneTambahkan 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.

PropertyTypeValues
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q 25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (controls symbol dimensions)
maskint0–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.

PropertyTypeDefaultDescription
allow_check_digit_inputboolNoneMenerima 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:

PropertyTypeDescription
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Tips dan Praktik Terbaik

  • Penggunaan Code128EncodeMode.AUTO kecuali Anda memiliki alasan khusus untuk membatasi set karakter menghasilkan barcode terpendek untuk input apa pun.
  • Set (set) QrErrorCorrectionLevel.H untuk kode QR yang akan dicetak pada permukaan yang rentan terhadap kerusakan.
  • Biarkan perpustakaan menghitung digit cek secara default hanya ditetapkan allow_check_digit_input=True saat menerima data yang telah divalidasi sebelumnya dari sistem lain.
  • Penggunaan QrEncodeMode.NUMERIC untuk data QR digit saja, agar ukuran simbol diminimalkan.

Masalah Umum

IssueCausePerbaiki
InvalidInputError pada Kode 39Input berisi huruf kecilSet (set) full_ascii=True di dalam Code39Options
Kode QR terlalu besarVersi yang ditetapkan terlalu rendah untuk panjang dataMenghapus eksplisit version atau menambahnya.
Salah digit cek pada EAN-1313-digit input without allow_check_digit_input=TrueLoloskan 12 digit (otomatis) atau atur opsi untuk True
SymbologyNotFoundErrorNama simbol yang salah ejaan di generate()Gunakan salah satu: code128, code39, ean13, ean8, qr, upca, upce

See Also

 Bahasa Indonesia