Pendahuluan
Kami merilis Aspose.BarCode FOSS untuk Python, sebuah pustaka pure-Python untuk menghasilkan kode batang 1D dan 2D yang mematuhi standar. Sumber tersedia di GitHub as aspose-barcode-foss, berlisensi MIT, dan tidak memiliki ketergantungan eksternal.
Pustaka ini mendukung tujuh simbolografi: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, dan UPC-E. Setiap kode batang dirender langsung ke SVG atau PNG. Tidak ada ekstensi native, tidak ada paket sistem yang harus dipasang, dan tidak memerlukan driver grafis — bangun dari sumber pada Windows, Linux, dan macOS.
Fitur Utama
Generasi Tingkat Tinggi API
Fungsi generate() tingkat atas menerima nama simbolografi dan string data, mengembalikan objek Barcode. Pembantu khusus per-simbolografi — code128(), code39(), ean13(), ean8(), qr(), upca(), dan upce() — menyediakan titik masuk yang aman tipe untuk setiap format.
import aspose_barcode_foss as barcode
bc = barcode.generate("code128", "ABC123")
svg = bc.to_svg()
Opsi Enkode Spesifik Simbolografi
Setiap simbolologi menerima kelas opsi yang mengontrol perilaku enkoding. Code128Options menyediakan encode_mode (AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC). Code39Options mendukung mode BASE dan FULL_ASCII. QrOptions menampilkan error_correction_level (L, M, Q, H), version, mask, dan encoding_mode (AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
png_bytes = bc.to_png()
Kontrol Rendering
RenderOptions mengontrol output visual: scale, dpi, module_width, module_height, quiet_zone, foreground_color, background_color, transparent_background, show_text, font_family, dan font_size. Baik to_svg() maupun to_png() menerima parameter opsional RenderOptions.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.ean13("590123412345")
svg = bc.to_svg(options=RenderOptions(
scale=2.0,
foreground_color="#003366",
quiet_zone=10.0,
show_text=True,
))
Digit Pemeriksaan Otomatis
EAN-13, EAN-8, UPC-A, dan UPC-E menghitung digit pemeriksaan secara otomatis dari string data. Anda cukup menyediakan digit payload; perpustakaan menambahkan digit pemeriksaan yang tepat selama enkoding.
Validasi Input
Setiap simbolologi memiliki InputParser khusus yang memvalidasi data sebelum enkoding. Karakter tidak valid, panjang yang salah, dan pelanggaran format ditangkap lebih awal dengan pengecualian bertipe: InvalidInputError, EncodingError, SymbologyNotFoundError, dan UnsupportedCapabilityError — semuanya mewarisi dari BarcodeError.
Mulai 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 barcode Code 128 dan tulis SVG ke sebuah file:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(show_text=True))
with open("barcode.svg", "w") as f:
f.write(svg)
Hasilkan QR code dan simpan sebagai PNG:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(bc.to_png())
Perpustakaan memerlukan Python 3.12 atau lebih tinggi.
Format yang Didukung
| Symbology | Jenis | Digit Pemeriksa | Kelas Opsi |
|---|---|---|---|
| Code 128 | 1D | Bawaan | Code128Options |
| Code 39 | 1D | Optional | Code39Options |
| EAN-13 | 1D | Automatic | Ean13Options |
| EAN-8 | 1D | Automatic | Ean8Options |
| QR Code | 2D | Bawaan | QrOptions |
| UPC-A | 1D | Automatic | UpcaOptions |
| UPC-E | 1D | Automatic | UpceOptions |
Format keluaran:
| Format | Ekstensi | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Sumber Terbuka & Lisensi
Perpustakaan ini berlisensi MIT. Anda dapat menggunakannya dalam aplikasi komersial, memodifikasinya, dan mendistribusikannya tanpa batasan. Sumbernya tersedia di GitHub. Tidak ada tingkatan penggunaan, tidak ada batas token, dan tidak ada telemetri. Semua pemrosesan terjadi secara lokal.