Pemecahan Masalah Aspose.BarCode FOSS for Python

Pemecahan Masalah Aspose.BarCode FOSS for Python

Panduan ini mencakup kesalahan dan masalah paling umum saat menghasilkan kode batang dengan Aspose.BarCode FOSS untuk Python. Setiap bagian menjelaskan kesalahan, penyebabnya, dan cara memperbaikinya.

Kesalahan Umum

InvalidInputError

InvalidInputError muncul ketika data yang diberikan ke encoder tidak sesuai dengan set karakter atau persyaratan panjang simbolologi.

****Penyebab umum::

  • Mengirim karakter alfabetik ke simbolologi yang hanya menerima angka (EAN-13, EAN-8, UPC-A, UPC-E)
  • Menyediakan string yang panjangnya tidak sesuai dengan persyaratan panjang tetap simbolologi (mis. EAN-13 memerlukan tepat 12 atau 13 digit)
  • Menyertakan karakter di luar set yang didukung oleh simbol (misalnya mode dasar Code 39 hanya mendukung huruf kapital, angka, dan beberapa karakter khusus)

Perbaiki: Validasi data masukan Anda sebelum memanggil BarcodeService.generate(). Periksa profil simbolologi capabilities and known_limitations properti untuk set karakter dan batasan panjang.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# EAN-13 requires exactly 12 or 13 digits
data = "590123412345"  # 12 digits — valid
barcode = service.generate("ean13", data)

EncodingError

EncodingError muncul ketika encoder mengalami kegagalan internal setelah validasi input berhasil. Ini lebih jarang terjadi dibandingkan InvalidInputError.

****Penyebab umum::

  • Data yang lolos validasi awal tetapi gagal selama pengkodean segmen (misalnya data QR Code yang melebihi kapasitas untuk tingkat koreksi kesalahan yang dipilih)
  • Opsi enkode yang bertentangan (misalnya meminta Code128EncodeMode.CODE_A dengan data yang mengandung karakter huruf kecil)

Perbaiki: Tinjau opsi enkode yang diteruskan ke generate(). Untuk Code 128, gunakan Code128EncodeMode.AUTO untuk membiarkan enkoder memilih subset optimal. Untuk QR Code, coba yang lebih rendah QrErrorCorrectionLevel atau kurangi panjang data.

from aspose_barcode_foss import BarcodeService, Code128Options, Code128EncodeMode

service = BarcodeService()
options = Code128Options(encode_mode=Code128EncodeMode.AUTO)
barcode = service.generate("code128", "Hello123", encode=options)

SymbologyNotFoundError

SymbologyNotFoundError muncul ketika nama symbology yang diberikan ke BarcodeService.generate() tidak terdaftar dalam SymbologyRegistry.

****Penyebab umum::

  • Nama symbology salah eja (misalnya "code_128" alih-alih "code128")
  • Menggunakan symbology yang tidak didukung oleh perpustakaan (perpustakaan hanya mendukung Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, dan UPC-E)

Perbaikan: Gunakan salah satu dari tujuh pengidentifikasi simbologi yang didukung: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Nama tidak memperhatikan huruf besar/kecil tetapi harus cocok dengan pengidentifikasi yang terdaftar.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# Correct symbology names
barcode = service.generate("code128", "ABC-123")
barcode = service.generate("qrcode", "https://example.com")

RenderingError

RenderingError muncul ketika renderer gagal menghasilkan output dari simbol yang terenkode.

****Penyebab umum::

  • Nilai RenderOptions tidak valid (mis. scale negatif atau module_width)
  • Mencoba menggunakan PdfRenderer (rendering PDF menghasilkan NotImplementedError pada versi saat ini)

Perbaikan: Gunakan SvgRenderer or PngRenderer daripada PdfRenderer. Verifikasi bahwa RenderOptions properties memiliki nilai positif yang valid.

from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer

service = BarcodeService()
barcode = service.generate("ean13", "590123412345")

options = RenderOptions(scale=2.0, dpi=300)
result = barcode.render(SvgRenderer(), options)

UnsupportedCapabilityError dan UnsupportedFeatureError

UnsupportedCapabilityError muncul ketika sebuah simbolologi tidak mendukung kemampuan yang diminta (mis. mode GS1 untuk simbolologi yang tidak memiliki dukungan GS1). UnsupportedFeatureError muncul untuk fitur yang belum diimplementasikan dalam pustaka.

Perbaiki: Periksa profil symbology capabilities properti untuk mengonfirmasi fitur mana yang tersedia. Hindari meminta mode GS1 untuk symbologies yang tidak mendukungnya.

Masalah Lingkungan

Python Versi

Aspose.BarCode FOSS memerlukan Python 3.12 atau lebih baru. Jika Anda melihat SyntaxError atau kegagalan impor, verifikasi versi Python Anda:

python --version

Masalah Instalasi

Bangun paket dari sumber.

Perpustakaan ini murni Python tanpa dependensi native. Jika instalasi berhasil tetapi impor gagal, periksa bahwa Anda tidak menutupi paket dengan file lokal bernama aspose_barcode_foss.py.

Kesalahan Impor

Impor yang benar adalah:

import aspose_barcode_foss

atau impor kelas tertentu:

from aspose_barcode_foss import BarcodeService, RenderOptions

Pertanyaan yang Sering Diajukan

Mengapa kode batang EAN-13 saya menampilkan nomor yang berbeda dari yang saya masukkan?

EAN-13 secara otomatis menghitung digit pemeriksaan. Jika Anda memberikan 12 digit, digit ke-13 akan ditambahkan. Jika Anda memberikan 13 digit, digit terakhir akan divalidasi sebagai digit pemeriksaan. Gunakan properti Ean13Options allow_check_digit_input untuk mengendalikan perilaku ini.

Mengapa output PDF memunculkan NotImplementedError?

PdfRenderer.render() dan Barcode.to_pdf() belum diimplementasikan. Gunakan Barcode.to_svg() atau Barcode.to_png() sebagai gantinya, atau render dengan SvgRenderer atau PngRenderer secara langsung.

Bagaimana cara saya men-debug nama-nama symbology yang tersedia?

Gunakan SymbologyRegistry.get_definition() untuk memeriksa apakah sebuah symbology terdaftar. Jika ia memunculkan SymbologyNotFoundError, symbology tidak tersedia. Tujuh symbology yang didukung adalah: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, dan UPC-E.

Lihat Juga

 Bahasa Indonesia