דור ה-Barcode

דור ה-Barcode

דור ה-Barcode

מסלול הגנת קוד שורת ב- Aspose.BarCode FOSS עבור Python עוקב אחר ארכיטקטורה של שלושה שלבים: תגית: Render.• רמות הגלגלים (generate() ו- per-symbology עוזרים) אורקסטרטים של השלבים האלה דרך BarcodeService.


הגדרת API ברמה גבוהה

הדרך הפשוטה ביותר ליצור קוד שורת היא באמצעות פונקציות עוזר per-symbology:

import aspose_barcode_foss as barcode

bc_128 = barcode.code128("ABC123")
bc_qr = barcode.qr("https://example.com")
bc_ean = barcode.ean13("590123412345")
bc_upca = barcode.upca("01234567890")

כל עוזר מביא את Barcode תגית: Call to_svg() על מוצרי ה- SVG או to_png() על פי תוצאות PNG.

הגנרל generate() הפונקציה מקבלת שורת שמות סימבוולוגיה:

bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()

שמות סימבוליים שווה: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService הוא מתאים לשלושה שלבים: הוא מחזיק את SymbologyRegistry ואחד OptionsResolver:

from aspose_barcode_foss import BarcodeService

# The default service is used by all helper functions
# You can create a custom service for testing or extension:
service = BarcodeService(registry=registry, options_resolver=resolver)
result = service.generate("code128", "DATA")

The generate() שיטת :

  1. תסתכל על The SymbologyDefinition מתוך הרשום
  2. קוראים ל InputParser.parse() להעריך ולנורמליז את ההכנסה
  3. קוראים ל SymbologyEncoder.encode() כדי לייצר את EncodedSymbol
  4. חזרה א Barcode להדביק את הסמל ואת הפרופיל שלו

SymbologyRegistry

SymbologyRegistry חנויות SymbologyDefinition אובייקטים המפתחים על ידי שמות קנוניים ואלייה:

MethodDescription
get_definition(name)להגדיר את הסמבלולוגיה המלאה
get_parser(name)קבל את InputParser על סימבוליקה
get_encoder(name)קבל את SymbologyEncoder על סימבוליקה
get_profile(name)קבל את SymbologyProfile עם הפסקות
get_text_policy(name)קבל את TextLayoutPolicy על טקסט רנדרינג
register(definition)להירשם חדש SymbologyDefinition

EncoderRegistry הוא תואם שמתאים ל-backward alias. SymbologyRegistry.


SymbologyDefinition

א SymbologyDefinition כל המרכיבים הדרושים לתמיכה בסמבוולוגיה אחת:

PropertyTypeDescription
namestrקנדי סימבוליקה זיהוי
parserInputParserאימות וטורמליזציה של נתוני כניסה
encoderSymbologyEncoderהקוד נתונים לתוך מודול מתיקה
profileSymbologyProfileחסרונות, יכולות ופוליטיקה טקסט
aliasestuple[str, ...]שמות אלטרנטיביים עבור Searchup

EncodedSymbol

The EncodedSymbol החזרה על ידי קוד מכיל:

  • matrix א - A ModuleMatrix עם רשת המודול הלוגי של קוד הקשת
  • metadata א - A SymbolMetadata עם שם סימבוליקה, הצג טקסט ופרטים הקוד
bc = barcode.code128("TEST")
symbol = bc.symbol

print(f"Matrix: {symbol.matrix.width}x{symbol.matrix.height}")
print(f"Display text: {symbol.metadata.display_text}")
print(f"Symbology: {symbol.metadata.symbology}")

ModuleMatrix מספק A get(x, y) שיטה שמחזירה את הערך של המודול למיקום מסוים.


NormalizedPayload

The NormalizedPayload זהו הדמות הבינונית בין הפריסה והקוד:

PropertyDescription
symbologyשם סימבוליקה קנאית
dataנתוני ה-CAD (התאמת הנתונים)str או bytes)
input_kindכיצד נרשמה התערוכה
code128_encode_modeקוד פתרון 128 מצב (אם יש)
code39_encode_modeשיטת קוד 39 (אם יש)
qr_error_correction_levelתיקון שגיאות QR (אם יש צורך)
qr_versionגרסה QR (אם יש צורך)
qr_encoding_modeמצב קוד QR (אם יש צורך)

OptionsResolver

OptionsResolver שילוב של אפשרויות render המוצעות על ידי משתמש עם סימבוליות דפדפן:

MethodDescription
resolve(profile, options)לייצר A ResolvedRenderOptions על ידי שילוב אפשרויות משתמש עם הפרופיל הלא נכון
merge_options(earlier, later)שילוב 2 RenderOptions (הערכים מאוחרים יותר מופרזים)
coerce_options(options)נורמליזציה של אפשרויות יקרות לתוך RenderOptions

טיפים ושיטות טובות

  • שימוש במתכונת עוזר (code128(), qr(),במקום זאת, במקום generate() עבור סוג בטיחות – הם מבטיחים כי האפשרויות הנכונות של הכיתה משתמשים.
  • The Barcode.symbol הנכס נותן גישה ישירה ל EncodedSymbol על מנת להגדיר או לנתח.
  • BarcodeService הוא חסר מדינה – דוגמה אחת יכולה ליצור קודים בר דרך שורות מרובות.
  • Catch BarcodeError ככיתה בסיסית להתמודד עם כל ההפרשות הקשורות קוד שורת בלוק אחד.

בעיות נפוצות

IssueCauseקבע
SymbologyNotFoundErrorשם לא רשום ב SymbologyRegistryצפו ב-Canon; השתמשו בשמות קנוניים
InvalidInputErrorנתונים מפרים את דרישות הסמבוליותבדוק את הגדרת הדמויות ואת דרישות האורך
תוצאות SVG ריקותאין מודולים מקודדיםבדוק את הנתונים לא ריקים ותקיימים עבור הסימבוליקה

See Also

 עברית