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, .KANJI
  • version: QR sürümü (1–40), sembol boyutunu kontrol eder
  • mask: 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:

ÖzellikTürAçıklama
scalefloatTekdüze ölçek çarpanı
dpiintPNG çıktısı için çözünürlük
module_widthfloatBir barkod modülünün genişliği
module_heightfloatBir barkod modülünün yüksekliği
quiet_zonefloatBarkodun etrafındaki boşluk dolgusu
foreground_colorstrÇubuklar için hex renk (ör. "#000000")
background_colorstrArka plan için hex renk
transparent_backgroundboolPNG için şeffaf arka plan
show_textboolBarkodun altında insan tarafından okunabilir metni göster
font_familystrİnsan tarafından okunabilir metin için yazı tipi
font_sizefloatİ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çerir
  • EncodingError — 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

SymbologyTürSeçenekler SınıfıAnahtar Özellikler
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

Çıktı biçimleri:

BiçimUzantı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.


Başlarken

İlgili Kaynaklar