نسل بارکد
نسل بارکد
خط تولید کد نوار در 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() روش :
- نگاهی به آن ها
SymbologyDefinitionاز ثبت نام - به نام
InputParser.parse()برای تایید و عادی سازی ورودی ها - به نام
SymbologyEncoder.encode()برای تولید یکEncodedSymbol - بازگشت به A
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 یک آلیس سازگار با عقب برای SymbologyRegistry.
SymbologyDefinition
A SymbologyDefinition مجموعه ای از اجزای مورد نیاز برای پشتیبانی از یک نماد:
| Property | Type | Description |
|---|---|---|
name | str | شناسایی نماد کاننیک |
parser | InputParser | تایید و استاندارد سازی داده های ورودی |
encoder | SymbologyEncoder | رمزگذاری داده ها به یک ماتریس ماژول |
profile | SymbologyProfile | ضعف ها، توانایی ها و سیاست های متن |
aliases | tuple[str, ...] | نام های جایگزین برای جستجو |
EncodedSymbol
و این 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
و این NormalizedPayload این نشان دهنده میانگین بین پارسینگ و کدگذاری است:
| Property | Description |
|---|---|
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 ترکیبی از گزینه های ارائه شده توسط کاربر با اختیارات نمادین:
| Method | Description |
|---|---|
resolve(profile, options) | تولید A ResolvedRenderOptions با ترکیب گزینه های کاربر با پروفایل های پیش فرض |
merge_options(earlier, later) | ترکیب دو RenderOptions (تغییرمسیرهای بعدی در نظر گرفته شده) |
coerce_options(options) | گزینه های خام را به حالت عادی تبدیل کنید. RenderOptions |
راهنمایی ها و بهترین شیوه ها
- در این مطلب به بررسی تکنیک های تمیز کردن (
code128(),qr(),و غیره) به جای آنکهgenerate()برای نوع ایمنی – آنها اطمینان حاصل می کنند که کلاس گزینه های صحیح مورد استفاده قرار می گیرد. - و این
Barcode.symbolاملاک به طور مستقیم دسترسی بهEncodedSymbolبرای رندراندینگ یا تجزیه و تحلیل. BarcodeServiceبدون وضعیت است – یک مثال می تواند بارکدها را در سراسر چندین شاخه ایجاد کند.- Catch
BarcodeErrorبه عنوان یک کلاس پایه برای مقابله با تمام استثناهای مربوط به کد نوار در یک بلوک واحد.
مسائل مشترک
| Issue | Cause | اصلاحی |
|---|---|---|
SymbologyNotFoundError | نام ثبت نشده در SymbologyRegistry | بررسی اسکن؛ استفاده از نام های کانونی |
InvalidInputError | اطلاعاتی که نیازهای نمادین را نقض می کند | بررسی مشخصات و نیازهای طولانی مدت |
| خروجی خالی SVG | هیچ مدول رمزگذاری نشده | بررسی داده ها غیر خالی و معتبر برای نماد شناسی است |