דור ה-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() שיטת :
- תסתכל על The
SymbologyDefinitionמתוך הרשום - קוראים ל
InputParser.parse()להעריך ולנורמליז את ההכנסה - קוראים ל
SymbologyEncoder.encode()כדי לייצר אתEncodedSymbol - חזרה א
Barcodeלהדביק את הסמל ואת הפרופיל שלו
SymbologyRegistry
SymbologyRegistry חנויות SymbologyDefinition אובייקטים המפתחים על ידי שמות קנוניים ואלייה:
| Method | Description |
|---|---|
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 כל המרכיבים הדרושים לתמיכה בסמבוולוגיה אחת:
| Property | Type | Description |
|---|---|---|
name | str | קנדי סימבוליקה זיהוי |
parser | InputParser | אימות וטורמליזציה של נתוני כניסה |
encoder | SymbologyEncoder | הקוד נתונים לתוך מודול מתיקה |
profile | SymbologyProfile | חסרונות, יכולות ופוליטיקה טקסט |
aliases | tuple[str, ...] | שמות אלטרנטיביים עבור Searchup |
EncodedSymbol
The EncodedSymbol החזרה על ידי קוד מכיל:
matrixא - AModuleMatrixעם רשת המודול הלוגי של קוד הקשתmetadataא - ASymbolMetadataעם שם סימבוליקה, הצג טקסט ופרטים הקוד
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 זהו הדמות הבינונית בין הפריסה והקוד:
| Property | Description |
|---|---|
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 המוצעות על ידי משתמש עם סימבוליות דפדפן:
| Method | Description |
|---|---|
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ככיתה בסיסית להתמודד עם כל ההפרשות הקשורות קוד שורת בלוק אחד.
בעיות נפוצות
| Issue | Cause | קבע |
|---|---|---|
SymbologyNotFoundError | שם לא רשום ב SymbologyRegistry | צפו ב-Canon; השתמשו בשמות קנוניים |
InvalidInputError | נתונים מפרים את דרישות הסמבוליות | בדוק את הגדרת הדמויות ואת דרישות האורך |
| תוצאות SVG ריקות | אין מודולים מקודדים | בדוק את הנתונים לא ריקים ותקיימים עבור הסימבוליקה |