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, .KANJI
  • version: versi QR (1–40), mengontrol ukuran simbol
  • mask: 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():

PropertiJenisDeskripsi
scalefloatPengganda skala seragam
dpiintResolusi untuk output PNG
module_widthfloatLebar satu modul kode batang
module_heightfloatTinggi satu modul kode batang
quiet_zonefloatPadding ruang putih di sekitar kode batang
foreground_colorstrWarna hex untuk batang (mis., "#000000")
background_colorstrWarna Hex untuk latar belakang
transparent_backgroundboolLatar belakang transparan untuk PNG
show_textboolTampilkan teks yang dapat dibaca manusia di bawah barcode
font_familystrFont untuk teks yang dapat dibaca manusia
font_sizefloatUkuran 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 simbol
  • EncodingError — enkoding gagal (mis., data melebihi kapasitas)
  • SymbologyNotFoundError — nama simbolologi tidak dikenali yang diberikan ke generate()
  • 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

SymbologyJenisKelas OpsiProperti Kunci
Code 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

Format keluaran:

FormatEkstensiExport
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.


Memulai

Sumber Daya Terkait