نسل بارکد

نسل بارکد

نسل بارکد

خط تولید کد نوار در Aspose.BarCode FOSS برای Python یک معماری سه مرحله ای را دنبال می کند: دانلود کد برای رندر.در این میان، سطح بالای آب (generate() و برای کمک به سمبولوژی) این مراحل را از طریق 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 موضوع : تماس to_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")

و این generate() روش :

  1. نگاهی به آن ها SymbologyDefinition از ثبت نام
  2. به نام InputParser.parse() برای تایید و عادی سازی ورودی ها
  3. به نام SymbologyEncoder.encode() برای تولید یک EncodedSymbol
  4. بازگشت به A 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 یک آلیس سازگار با عقب برای SymbologyRegistry.


SymbologyDefinition

A SymbologyDefinition مجموعه ای از اجزای مورد نیاز برای پشتیبانی از یک نماد:

PropertyTypeDescription
namestrشناسایی نماد کاننیک
parserInputParserتایید و استاندارد سازی داده های ورودی
encoderSymbologyEncoderرمزگذاری داده ها به یک ماتریس ماژول
profileSymbologyProfileضعف ها، توانایی ها و سیاست های متن
aliasestuple[str, ...]نام های جایگزین برای جستجو

EncodedSymbol

و این 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

و این NormalizedPayload این نشان دهنده میانگین بین پارسینگ و کدگذاری است:

PropertyDescription
symbologyنام نماد کاننیک
dataاطلاعاتی که در آن ثبت شده است (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 ترکیبی از گزینه های ارائه شده توسط کاربر با اختیارات نمادین:

MethodDescription
resolve(profile, options)تولید A ResolvedRenderOptions با ترکیب گزینه های کاربر با پروفایل های پیش فرض
merge_options(earlier, later)ترکیب دو RenderOptions (تغییرمسیرهای بعدی در نظر گرفته شده)
coerce_options(options)گزینه های خام را به حالت عادی تبدیل کنید. RenderOptions

راهنمایی ها و بهترین شیوه ها

  • در این مطلب به بررسی تکنیک های تمیز کردن (code128(), qr(),و غیره) به جای آنکه generate() برای نوع ایمنی – آنها اطمینان حاصل می کنند که کلاس گزینه های صحیح مورد استفاده قرار می گیرد.
  • و این Barcode.symbol املاک به طور مستقیم دسترسی به EncodedSymbol برای رندراندینگ یا تجزیه و تحلیل.
  • BarcodeService بدون وضعیت است – یک مثال می تواند بارکدها را در سراسر چندین شاخه ایجاد کند.
  • Catch BarcodeError به عنوان یک کلاس پایه برای مقابله با تمام استثناهای مربوط به کد نوار در یک بلوک واحد.

مسائل مشترک

IssueCauseاصلاحی
SymbologyNotFoundErrorنام ثبت نشده در SymbologyRegistryبررسی اسکن؛ استفاده از نام های کانونی
InvalidInputErrorاطلاعاتی که نیازهای نمادین را نقض می کندبررسی مشخصات و نیازهای طولانی مدت
خروجی خالی SVGهیچ مدول رمزگذاری نشدهبررسی داده ها غیر خالی و معتبر برای نماد شناسی است

See Also

 فارسی