عیب‌یابی Aspose.BarCode FOSS for Python

عیب‌یابی Aspose.BarCode FOSS for Python

این راهنما رایج‌ترین خطاها و مشکلات هنگام تولید بارکدها با Aspose.BarCode FOSS برای Python را پوشش می‌دهد. هر بخش خطا، علت آن و نحوه رفع آن را توصیف می‌کند.

خطاهای رایج

InvalidInputError

InvalidInputError زمانی ایجاد می‌شود که داده‌های ارسال شده به رمزگذار با مجموعه کاراکتری یا نیازهای طولی نمادگذاری مطابقت نداشته باشد.

****دلایل معمول::

  • ارسال کاراکترهای حروفی به نمادگذاری فقط عددی (EAN-13, EAN-8, UPC-A, UPC-E)
  • ارائه رشته‌ای که طول آن با نیاز طول ثابت نمادگذاری مطابقت ندارد (مثلاً EAN-13 دقیقاً 12 یا 13 رقم نیاز دارد)
  • شامل کاراکترهایی که خارج از مجموعه پشتیبانی‌شده سمبولولوژی هستند (مثلاً حالت پایه Code 39 فقط حروف بزرگ، ارقام و چند کاراکتر ویژه را پشتیبانی می‌کند)

اصلاح: داده‌های ورودی خود را قبل از فراخوانی اعتبارسنجی کنید BarcodeService.generate(). پروفایل سمبولی را بررسی کنید capabilities and known_limitations ویژگی‌ها برای مجموعه کاراکترها و محدودیت‌های طول.

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 زمانی رخ می‌دهد که رمزگذار پس از عبور از اعتبارسنجی ورودی با یک خطای داخلی مواجه شود. این نسبت به InvalidInputError کمتر رایج است.

****دلایل معمول::

  • داده‌هایی که اعتبارسنجی اولیه را پاس می‌کنند اما در طول رمزگذاری بخش شکست می‌خورند (مثلاً داده‌های QR Code که ظرفیت سطح اصلاح خطای انتخاب‌شده را بیش از حد می‌برند)
  • گزینه‌های رمزگذاری متناقض (مثلاً درخواست Code128EncodeMode.CODE_A با داده‌ای که حاوی کاراکترهای کوچک است)

اصلاح: گزینه‌های کدگذاری ارسال‌شده به generate(). برای Code 128، از Code128EncodeMode.AUTO تا به رمزگذار اجازه دهد زیرمجموعه بهینه را انتخاب کند. برای QR Code، سعی کنید یک مقدار کمتر QrErrorCorrectionLevel یا طول داده را کاهش دهید.

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 زمانی به وجود می‌آید که نام نمادگرایی که به BarcodeService.generate() پاس داده می‌شود در SymbologyRegistry ثبت نشده باشد.

****دلایل معمول::

  • نام نمادگرایی به‌اشتباه نوشته شده (مثلاً "code_128" به‌جای "code128")
  • استفاده از نمادگرایی که توسط کتابخانه پشتیبانی نمی‌شود (کتابخانه تنها Code 128، Code 39، EAN-13، EAN-8، QR Code، UPC-A و UPC-E را پشتیبانی می‌کند)

اصلاح: از یکی از هفت شناسه سمبولیسم پشتیبانی‌شده استفاده کنید: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". نام‌ها بدون در نظر گرفتن حروف بزرگ/کوچک مقایسه می‌شوند اما باید با شناسه‌های ثبت‌شده مطابقت داشته باشند.

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 زمانی به وجود می‌آید که رندرکننده نتواند خروجی‌ای از یک نماد رمزگذاری‌شده تولید کند.

****دلایل معمول::

  • مقادیر نامعتبر RenderOptions (مثلاً scale منفی یا module_width)
  • تلاش برای استفاده از PdfRenderer (رندر PDF در نسخهٔ فعلی NotImplementedError را ایجاد می‌کند)

اصلاح: استفاده کنید SvgRenderer or PngRenderer به‌جای PdfRenderer. تأیید کنید که RenderOptions خواص دارای مقادیر مثبت معتبر هستند.

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 و UnsupportedFeatureError

UnsupportedCapabilityError زمانی رخ می‌دهد که یک سمبولولوژی قابلیت درخواست‌شده را پشتیبانی نکند (مثلاً حالت GS1 برای سمبولولوژی که از GS1 پشتیبانی نمی‌کند). UnsupportedFeatureError برای ویژگی‌های پیاده‌سازی‌نشده در کتابخانه ایجاد می‌شود.

اصلاح: پروفایل نمادنگاری را بررسی کنید capabilities خاصیت برای تأیید اینکه کدام ویژگی‌ها موجود هستند. از درخواست حالت GS1 برای نمادنگاری‌هایی که از آن پشتیبانی نمی‌کنند، خودداری کنید.

مشکلات محیطی

Python نسخه

Aspose.BarCode FOSS نیاز به Python 3.12 یا بالاتر دارد. اگر SyntaxError یا خطاهای وارد کردن را مشاهده کردید، نسخه Python خود را بررسی کنید:

python --version

مشکلات نصب

بسته را از منبع بسازید.

این کتابخانه کاملاً Python است و هیچ وابستگی بومی ندارد. اگر نصب موفق شد اما وارد کردن‌ها شکست خورد، بررسی کنید که بسته را با فایلی محلی به نام aspose_barcode_foss.py مخفی نکرده‌اید.

خطاهای وارد کردن

وارد کردن صحیح این است:

import aspose_barcode_foss

یا کلاس‌های خاص را وارد کنید:

from aspose_barcode_foss import BarcodeService, RenderOptions

سوالات متداول

چرا بارکد EAN-13 من عدد متفاوتی نسبت به عدد وارد شده نشان می‌دهد؟

EAN-13 به‌صورت خودکار یک رقم چک محاسبه می‌کند. اگر ۱۲ رقم وارد کنید، رقم سیزدهم اضافه می‌شود. اگر ۱۳ رقم وارد کنید، رقم آخر به‌عنوان رقم چک اعتبارسنجی می‌شود. برای کنترل این رفتار از ویژگی Ean13Options allow_check_digit_input استفاده کنید.

چرا خروجی PDF NotImplementedError را ایجاد می‌کند؟

PdfRenderer.render() و Barcode.to_pdf() هنوز پیاده‌سازی نشده‌اند. به‌جای آن‌ها از Barcode.to_svg() یا Barcode.to_png() استفاده کنید، یا مستقیماً با SvgRenderer یا PngRenderer رندر کنید.

چگونه می‌توانم اشکال‌زدایی کنم که کدام نام‌های سمبولی موجود هستند؟

SymbologyRegistry.get_definition() را برای بررسی اینکه آیا یک سمبولی ثبت شده است استفاده کنید. اگر SymbologyNotFoundError را ایجاد کند، سمبولی در دسترس نیست. هفت سمبولی پشتیبانی‌شده عبارتند از: Code 128، Code 39، EAN-13، EAN-8، QR Code، UPC-A و UPC-E.

همچنین ببینید:

 فارسی