Pendahuluan
Aspose.BarCode FOSS untuk Python menyediakan kelas opsi per-simbol yang mengontrol perilaku pengkodean di semua tujuh format barcode yang didukung. Setiap kelas opsi mewarisi dari EncodeOptions dan menambahkan properti khusus untuk simbolnya — mode pengkodean Code 128, pemilihan ASCII Code 39, tingkat koreksi kesalahan QR, dan penanganan digit cek EAN/UPC.
Postingan ini mencakup setiap kelas opsi, propertinya, dan contoh kode yang berfungsi. Kelas tersedia dari paket aspose_barcode_foss tingkat atas.
Fitur Utama
Mode Pengkodean Code 128
Code128Options mengontrol set karakter Code 128 mana yang digunakan encoder. Properti encode_mode menerima nilai enum Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, atau CODE_BC. AUTO memilih pengkodean paling kompak secara otomatis. CODE_C dioptimalkan untuk data hanya digit (pasangan digit dienkode sebagai titik kode tunggal).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
bc = barcode.code128(
"1234567890",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()
Code 128 juga mendukung properti gs1_enabled dan eci_assignment_number yang diwarisi dari EncodeOptions untuk GS1 dan metadata ECI.
Code 39 Pengkodean
Code39Options mengontrol apakah encoder menggunakan set karakter basis 43 atau ekstensi Full ASCII. Atur full_ascii=True untuk mengaktifkan mode Full ASCII, yang mengkodekan seluruh rentang ASCII 128 karakter menggunakan pasangan shift. Properti opsional add_check_digit menambahkan digit cek modulo-43.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options
bc = barcode.code39(
"Hello",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()
QR Code Konfigurasi
QrOptions menawarkan set konfigurasi paling kaya di antara simbolologi yang didukung:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: versi QR (1–40), mengontrol ukuran simbolmask: pola masker (0–7) untuk pemilihan manual
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
bc = barcode.qr(
"https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.Q,
encoding_mode=QrEncodeMode.BYTE,
),
)
png_bytes = bc.to_png()
Digit Pemeriksa EAN dan UPC
Ean13Options, Ean8Options, UpcaOptions, dan UpceOptions masing-masing memiliki properti allow_check_digit_input. Secara default, perpustakaan menghitung digit pemeriksa secara otomatis dari data. Atur allow_check_digit_input=True jika data Anda sudah menyertakan digit pemeriksa.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options
# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()
# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)
Opsi Rendering
RenderOptions berlaku untuk semua simbol dan mengontrol output visual. Berikan ke to_svg() atau to_png():
| Properti | Jenis | Deskripsi |
|---|---|---|
scale | float | Pengganda skala seragam |
dpi | int | Resolusi untuk output PNG |
module_width | float | Lebar satu modul kode batang |
module_height | float | Tinggi satu modul kode batang |
quiet_zone | float | Padding ruang putih di sekitar kode batang |
foreground_color | str | Warna hex untuk batang (mis., "#000000") |
background_color | str | Warna Hex untuk latar belakang |
transparent_background | bool | Latar belakang transparan untuk PNG |
show_text | bool | Tampilkan teks yang dapat dibaca manusia di bawah barcode |
font_family | str | Font untuk teks yang dapat dibaca manusia |
font_size | float | Ukuran font untuk teks yang dapat dibaca manusia |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
scale=3.0,
dpi=300,
foreground_color="#1a1a1a",
background_color="#ffffff",
show_text=True,
font_family="Courier New",
))
Penanganan Kesalahan
Semua validasi opsi enkode terjadi pada waktu parsing. Jika data tidak valid atau opsi yang tidak kompatibel diberikan, perpustakaan akan mengeluarkan pengecualian bertipe sebelum proses enkoding dimulai:
InvalidInputError— data berisi karakter yang tidak didukung oleh simbolEncodingError— enkoding gagal (mis., data melebihi kapasitas)SymbologyNotFoundError— nama simbolologi tidak dikenali yang diberikan kegenerate()UnsupportedCapabilityError— fitur yang diminta tidak tersedia untuk simbolologi ini
Semua kelas pengecualian mewarisi dari BarcodeError.
Panduan Cepat
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Hasilkan kode batang dengan opsi enkode yang berbeda dan simpan:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
Code128Options, Code128EncodeMode,
QrOptions, QrErrorCorrectionLevel,
RenderOptions,
)
# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
"9876543210",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
f.write(c128.to_svg())
# QR with high error correction
qr = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(qr.to_png(options=RenderOptions(scale=4.0)))
# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
f.write(ean.to_svg(options=RenderOptions(
foreground_color="#003366",
show_text=True,
)))
Format yang Didukung
| Symbology | Jenis | Kelas Opsi | Properti Kunci |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
Format keluaran:
| Format | Ekstensi | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Sumber Terbuka & Lisensi
Aspose.BarCode FOSS untuk Python dilisensikan di bawah MIT. Sumber tersedia di GitHub; bangun dari sumber. Tidak ada ketergantungan native, tidak ada telemetri, tidak ada batasan penggunaan.