Вибір символіки штрих-коду
Вибір символіки штрих-коду
Aspose.BarCode FOSS for Python supports seven symbologies. Each is suited to different data types, scanning environments, and industry standards. This guide covers the characteristics of each symbology and when to use it.
Огляд символіки
| Symbology | Тип | Набір символів | Пропускна здатність даних | Перевірка цифри |
|---|---|---|---|---|
| Код 128 | 1D | Повний ASCII (128 символів) | Перемінна довжина | Автоматичний (мод-103) |
| Код 39 | 1D | AZ, 09 та 7 спеціальних символів (база); повний ASCII (розширені) | Перемінна довжина | Optional |
| EAN-13 | 1D | Тільки цифрова (09) | 12 data digits + 1 check digit | Automatic |
| EAN-8 | 1D | Тільки цифрова (09) | 7 data digits + 1 check digit | Automatic |
| QR-код | 2D | Числові, алфанумерні, байти та канджі | До 7089 числових / 4296 алфавітних номерів | Автоматичний (Reed-Solomon) |
| UPC-A | 1D | Тільки цифрова (09) | 11 data digits + 1 check digit | Automatic |
| UPC-E | 1D | Тільки цифрова (09) | 6 data digits (compressed UPC-A) | Automatic |
Код 128
Код 128 кодує повний набір символів ASCII з високою щільністю. Він використовує три набори симворів (A, B, C) і автоматично перемикається між ними в AUTO режим.
Найкраще для: етикеток запасу, маркивок на доставку та загальнопризначних алфанумерних даних.
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code128Options, Code128EncodeMode
service = BarcodeService()
# Auto mode — library selects optimal character sets
barcode = service.generate("code128", "INV-2026-00451")
# Force Code C for all-numeric data (higher density)
barcode = service.generate(
"code128", "123456789012",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = barcode.to_svg()Код 39
Код 39 підтримує величні букви, цифри та 7 спеціальних символів в базовому режимі. full_ascii=True Додавати додаткову перевірку можна через: add_check_digit.
Найкраще для: промислових етикеток, урядових / військових ідентифікаторів (LOGMARS) та середовищ, де простота важливіша за щільність.
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code39Options
service = BarcodeService()
# Base mode — uppercase + digits + special chars
barcode = service.generate("code39", "PART-A1234")
# Full ASCII mode with check digit
barcode = service.generate(
"code39", "Part-a1234",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = barcode.to_svg()EAN-13
EAN-13 - стандартний штрих-код для роздрібних продуктів за межами Північної Америки. Він кодує точно 12 цифр даних; 13-а цифра є перевірною цифрою, обчислюваною автоматично. Ean13Options для контролю поведінки введення цифр.
Найкраще для: роздрібної ідентифікації продукції, статей міжнародної торгівлі (GTIN-13).
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options
service = BarcodeService()
# 12 data digits — check digit computed
barcode = service.generate("ean13", "590123412345")
# With rendering options for human-readable text
from aspose_barcode_foss import RenderOptions
svg = barcode.to_svg(RenderOptions(show_text=True, scale=2.0))EAN-8
EAN-8 - компактна версія EAn-13, що використовується на невеликих роздрібних пакетах, де простір обмежений. Вона кодує 7 цифр даних плюс 1 цифру перевірки .
Найкраще для: малої роздрібної продукції, товарів з обмеженим простором на етикетці.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()QR-код
QR-код - це 2D матрична символіка, яка зберігає великі обсяги даних на невеликій площі. Він підтримує чотири режими кодування через QrEncodeMode: NUMERIC, ALPHANUMERIC , BYTE і KANJI. Виправлення помилок налаштовано через: QrErrorCorrectionLevel (L, M, Q, H).
Найкраще для: URL-адресів, мобільних додатків, маркетингових матеріалів та будь-яких випадків використання, які вимагають великої потужності даних або не ASCII символів.
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
service = BarcodeService()
# Default settings
barcode = service.generate("qrcode", "https://example.com")
# High error correction for printed labels
barcode = service.generate(
"qrcode", "https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.H,
encoding_mode=QrEncodeMode.BYTE,
),
)
png = barcode.to_png()UPC-A
UPC-A - стандартний штрих-код для роздрібних продуктів в Північній Америці. Він кодує 11 цифр даних плюс 1 контрольну цифру. U PC-А є підмножеством EAN-13 з провідним нулем .
Найкраще для: ідентифікації роздрібної продукції Північної Америки (GTIN-12).
service = BarcodeService() barcode = service.generate(“upca”, “01234567890”) svg = barcode.to_svg()
---
### UPC-E
UPC-E - це стиснена форма UCP-A для невеликих роздрібних товарів. Вона кодує 6 цифр даних шляхом вилучення нулів з повного представлення U PC-А .
Найкраще для: невеликих роздрібних товарів, купонів та етикеток, де простір обмежений.
service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()Посібник до прийняття рішень
Використовуйте цю таблицю для вибору правильної симвології для вашої заявки:
| Використання | Рекомендована символіка | Reason |
|---|---|---|
| Інвентар складського складу | Код 128 | Повний ASCII, висока щільність, змінна довжина |
| Військові/ЛОГМАРСні етикети | Код 39 | Широке впровадження в державних системах |
| Міжнародний роздрібний ринок | EAN-13 | Стандарт GTIN-13 |
| Маленька роздрібна упаковка | EAN-8 або UPC-E | Фізичний розмір компактний |
| Північноамериканський роздрібний ринок | UPC-A | Стандарт GTIN-12 |
| URL та мобільні посилання | QR-код | Висока здатність, 2D-сканування |
| Маркетинг та друкована продукція | QR-код | Сканується камерами телефонів. |
| Всечисленні серійні номери | Код 128 (код C) | Найбільша щільність для числових даних |
Поради та найкращі практики
- Використовуйте код 128 як замовчування для етикеток загального призначення він пропонує найкраще співвідношення площі до сумісності серед 1D символогій.
- Для роздрібних продуктів використовуйте символіку, необхідну для вашого ринку: EAN-13 для міжнародних, UPC-A для Північної Америки.
- Набір
QrErrorCorrectionLevel.Hдля QR-кодів, які будуть надруковані на етикетках, що піддаються зносу або частковому пошкодженню. - Завжди дозволяйте бібліотеці обчислювати цифри автоматично, а не подавати їх вручную.
- Використання
show_text=TrueвRenderOptionsдля етикеток, які читаються людиною, щоб оператори могли візуально перевірити скановані дані;
Загальні питання
| Issue | Cause | Виправлення |
|---|---|---|
InvalidInputError на EAN-13 | Нецифрові символи в даних | EAN-13 приймає тільки цифри 09 |
InvalidInputError про код 39 | Маленькі букви в базовому режимі. | Набір Code39Options(full_ascii=True) |
| QR-код занадто великий. | Версія занадто низька для довжини даних | Дозвольте бібліотеці автоматично вибрати версію або збільшити її. QrOptions.version |
UPC-E InvalidInputError | Дані не відповідають схемі нульового придушення. | Перевірте 6-значний формат UPC-E або використовуйте замість нього UCP-A. |
FAQ
Можна використовувати код 128 для усіх числових даних?
Так, код 128 - режим коду С (Code128EncodeMode.CODE_C) оптимізовано для усіх числових даних, кодування пар цифр в одному символічному знаці для максимальної щільності.
У чому різниця між EAN-13 та UPC-A?
UPC-A - це 12-значний підмножина EAN-13. Код U PC- A може бути представлений як E AN-13 з провідним нулем. Вони функціонально сумісні в роздрібних системах сканування.
Яка символіка підтримує найбільше даних?
QR-код підтримує до 7089 числових символів або 4296 буквенно-цифрових. Всі 1D-симвології в цій бібліотеці підтримують дані змінної довжини, але QR Code має найвищу потужність.
Чи можна змішувати символіки в одному застосуванні?
Так, створить. BarcodeService випадок і покликання generate() Сервіс розв’язує кожну символіку через систему “Баркод”. SymbologyRegistry.
Реферат на API
| Клас / метод | Опис |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Створення штрих-коду для будь-якої зареєстрованої симвології |
Code128Options | Можливі варіанти кодування для коду 128 (режим коди, GS1, ECI) |
Code128EncodeMode | Enum: AUTO, CODE_A,CODE _B,Code_C, Code _AB, Code _AC, code _BC |
Code39Options | Можливі варіанти кодування для Коду 39 (повний ASCII, номер відліку) |
Code39EncodeMode | Enum: BASE, FULL_ASCII (по-своєму) |
Ean13Options | Можливі варіанти кодування для EAN-13 (проверка введення цифр) |
Ean8Options | Можливі варіанти кодування для EAN-8 (проверка введення цифр) |
QrOptions | Можливі варіанти кодування QR-коду (виправлення помилок, версія, маска, режим) |
QrEncodeMode | Енум: AUTO, NUMERIC, ALPHANUMERIC (Автомобільний номер), BYTE, KANJI |
QrErrorCorrectionLevel | Енум: L, M, Q, H. |
UpcaOptions | Можливі варіанти кодування для UPC-A |
UpceOptions | Можливі варіанти кодування для UPC-E |
SymbologyRegistry | Вирішує символічні назви та надає визначення. |