פתרון בעיות 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 מחשב אוטומטית ספרת ביקורת. אם תעביר 12 ספרות, הספרה ה-13 מתווספת. אם תעביר 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.

ראה גם

 עברית