Giriş
Aspose.BarCode FOSS for Python, yedi desteklenen barkod formatının tamamında kodlama davranışını kontrol eden semboloji başına seçenek sınıfları sağlar. Her seçenek sınıfı EncodeOptions sınıfından miras alır ve kendi sembolojisine özgü özellikler ekler — Code 128 kodlama modları, Code 39 ASCII seçimi, QR hata düzeltme seviyeleri ve EAN/UPC kontrol rakamı işleme.
Bu gönderi her seçenek sınıfını, özelliklerini ve çalışan kod örneklerini kapsar. Sınıflar üst düzey aspose_barcode_foss paketinden temin edilebilir.
Temel Özellikler
Code 128 Kodlama Modları
Code128Options, kodlayıcının kullandığı Code 128 karakter setlerini kontrol eder. encode_mode özelliği bir Code128EncodeMode enum değeri alır: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC veya CODE_BC. AUTO, en sıkıştırılmış kodlamayı otomatik olarak seçer. CODE_C, yalnızca rakamlardan oluşan veri için optimize edilmiştir (rakam çiftleri tek kod noktası olarak kodlanır).
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, ayrıca EncodeOptions‘den miras alınan gs1_enabled ve eci_assignment_number özelliklerini GS1 ve ECI meta verileri için destekler.
Code 39 Kodlama
Code39Options, kodlayıcının temel 43 karakter setini mi yoksa Full ASCII uzantısını mı kullandığını kontrol eder. full_ascii=True‘i ayarlayarak Full ASCII modunu etkinleştirin; bu mod, kaydırma çiftleri kullanarak tam 128 karakterlik ASCII aralığını kodlar. İsteğe bağlı add_check_digit özelliği, bir modulo-43 kontrol rakamı ekler.
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 Yapılandırması
QrOptions, desteklenen sembolojiler arasında en zengin yapılandırma setini sunar:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: QR sürümü (1–40), sembol boyutunu kontrol edermask: manuel seçim için maske deseni (0–7)
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()
EAN ve UPC Kontrol Rakamları
Ean13Options, Ean8Options, UpcaOptions ve UpceOptions her birinin bir allow_check_digit_input özelliği vardır. Varsayılan olarak, kütüphane kontrol rakamını veriden otomatik olarak hesaplar. Veriniz zaten kontrol rakamını içeriyorsa allow_check_digit_input=True ayarlayın.
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),
)
Render Seçenekleri
RenderOptions, tüm sembolojilere uygulanır ve görsel çıktıyı kontrol eder. to_svg() veya to_png() öğesine iletin:
| Özellik | Tür | Açıklama |
|---|---|---|
scale | float | Tekdüze ölçek çarpanı |
dpi | int | PNG çıktısı için çözünürlük |
module_width | float | Bir barkod modülünün genişliği |
module_height | float | Bir barkod modülünün yüksekliği |
quiet_zone | float | Barkodun etrafındaki boşluk dolgusu |
foreground_color | str | Çubuklar için hex renk (ör. "#000000") |
background_color | str | Arka plan için hex renk |
transparent_background | bool | PNG için şeffaf arka plan |
show_text | bool | Barkodun altında insan tarafından okunabilir metni göster |
font_family | str | İnsan tarafından okunabilir metin için yazı tipi |
font_size | float | İnsan tarafından okunabilir metin için yazı tipi boyutu |
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",
))
Hata İşleme
Tüm kodlama seçeneği doğrulamaları ayrıştırma zamanında gerçekleşir. Geçersiz veri veya uyumsuz seçenekler sağlanırsa, kütüphane herhangi bir kodlamaya başlamadan önce tiplenmiş bir istisna fırlatır:
InvalidInputError— veri, semboloji tarafından desteklenmeyen karakterler içerirEncodingError— kodlama başarısız olur (ör. veri kapasiteyi aşar)SymbologyNotFoundError—generate()için tanınmayan semboloji adıUnsupportedCapabilityError— bu semboloji için istenen özellik mevcut değil
Tüm istisna sınıfları BarcodeError sınıfından kalıtım alır.
Hızlı Başlangıç
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Farklı kodlama seçenekleriyle barkodlar oluşturun ve kaydedin:
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,
)))
Desteklenen Biçimler
| Symbology | Tür | Seçenekler Sınıfı | Anahtar Özellikler |
|---|---|---|---|
| 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 |
Çıktı biçimleri:
| Biçim | Uzantı | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Açık Kaynak ve Lisanslama
Aspose.BarCode Python için FOSS MIT lisanslıdır. Kaynak kodu GitHub adresinde mevcuttur; kaynaktan derleyin. Yerel bağımlılık yok, telemetri yok, kullanım sınırı yok.