Вивчення проблем Aspose.Words FOSS для Python
У цьому керівництві розглянуто найпоширеніші помилки та проблеми при генерації штрих-кодів з Aspose.BarCode FOSS для Python (pip install aspose-barcode-fossКожна розділ описує помилку, її причину та способи виправлення.
Часті помилки
InvalidInputError
InvalidInputError піднімається, коли дані, передані кодеру не відповідають вимогам символіки або довжини.
Типові причини:
- Передача алфавітних символів у числову символіку (EAN-13, EAN-8, UPC-A, UCP-E)
- Постачання строки, довжина якої не відповідає вимогам симвології щодо фіксованої довжини (наприклад, EAN-13 вимагає точно 12 або 13 цифр)
- Включаючи символи, які не є підтримуваним набором символіки (наприклад, базовий режим Коду 39 підтримує тільки величезними буквами, цифрами та кількома спеціальними знаками)
Виправлення: Перевірка даних перед закликанням BarcodeService.generate().Перевірте профіль симвології. capabilities і known_limitations властивості для набору символів та обмежень довжини.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
# EAN-13 requires exactly 12 or 13 digits
data = "590123412345" # 12 digits — valid
barcode = service.generate("ean13", data)EncodingError
EncodingError Подібно до цього, коли кодер зустрічає внутрішню помилку після проходження вхідного перевірки. InvalidInputError.
Типові причини:
- Дані, які пройшли початкову перевірку, але не вдаються під час кодування сегменту (наприклад, дані QR-коду, що перевищують обсяг для обраного рівня виправлення помилок)
- Конфліктні варіанти кодування (наприклад, запитування
Code128EncodeMode.CODE_Aз даними, що містять крихітні символи)
Виправлення: Переглянути варіанти кодування, передані до generate().Для коду 128 використовуйте: Code128EncodeMode.AUTO Для QR-коду спробуйте нижчий код. QrErrorCorrectionLevel або скоротити довжину даних.
from aspose_barcode_foss import BarcodeService, Code128Options, Code128EncodeMode
service = BarcodeService()
options = Code128Options(encode_mode=Code128EncodeMode.AUTO)
barcode = service.generate("code128", "Hello123", encode=options)SymbologyNotFoundError
SymbologyNotFoundError піднімається, коли ім’я симвології переходить на BarcodeService.generate() не зареєстрована в SymbologyRegistry.
Типові причини:
- Неправильно написана назва символіки (наприклад.
"code_128"замість"code128") - Використання симвології, яка не підтримується бібліотекою (библіотека підтримує тільки код 128, код 39, EAN-13, E AN-8, QR-код, UPC-A та U PC-E)
Виправлення: Використовуйте один з семи підтримуваних ідентифікаторів символіки: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce".Назви не мають великої і великій букви, але повинні відповідати зареєстрованим ідентифікаторам.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
# Correct symbology names
barcode = service.generate("code128", "ABC-123")
barcode = service.generate("qrcode", "https://example.com")RenderingError
RenderingError піднімається, коли рендер не може виробляти вихід з кодованого символу.
Типові причини:
- Invalid
RenderOptionsзначення (наприклад, негативніscaleабоmodule_width) - Спробують використовувати
PdfRenderer(PDF-редактировка піднімаєNotImplementedErrorв поточній версії)
Виправлення: Використання SvgRenderer або PngRenderer замість PdfRenderer.Перевірте це. RenderOptions властивості мають дійсні позитивні значення.
from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer
service = BarcodeService()
barcode = service.generate("ean13", "590123412345")
options = RenderOptions(scale=2.0, dpi=300)
result = barcode.render(SvgRenderer(), options)НепідтримуєтьсяCapabilityError і не підтримуєтьсяFeatureError
UnsupportedCapabilityError піднімається, коли символіка не підтримує запитувану здатність (наприклад, режим GS1 для симвології, яка не має підтримки GS1). UnsupportedFeatureError піднімається для функцій, які не реалізовані в бібліотеці.
Виправлення: Перевірте профіль симвології. capabilities Не потрібно запитувати режим GS1 для символіки, яка його не підтримує.
Питання навколишнього середовища
Версія Python
Aspose.BarCode FOSS requires Python 3.12 or later. If you see SyntaxError або імпортні помилки, перевірте свою версію Python:
python --versionЦе трапляється, коли ви намагаєтеся зберегти у форматі, відмінному від PPTX, або коли під час збереження використовується непідтримувана функція (наприклад, діаграми чи анімації).
Якщо: pip install aspose-barcode-foss не працює, переконайтеся що pip оновлений:
pip install --upgrade pip
pip install aspose-barcode-fossБібліотека є чистою Python без наційних залежностей. Якщо установка вдається, але імпорт не працює, перевірте, що ви не прикріпили пакет локальним файлом з іменем aspose_barcode_foss.py.
Помилки імпорту
Правильний імпорт:
import aspose_barcode_fossабо імпортувати конкретні класи:
from aspose_barcode_foss import BarcodeService, RenderOptionsЧасто задавані запитання
Чому мій штрих-код EAN-13 показує інший номер, ніж я ввів?
EAN-13 автоматично обчислює перевірку. Якщо ви пройдете 12 цифр, 13-та цифра додається. якщо ви пройдете 13 циферблат, остання цифру підтверджується як переверка. використовуйте Ean13Options Короткоallow_check_digit_input властивості для контролю цього поведінки.
Чому PDF-вихід показує NotImplementedError?
PdfRenderer.render() і Barcode.to_pdf() не впроваджені. Barcode.to_svg() або Barcode.to_png() замість цього, або з’являється з SvgRenderer або PngRenderer прямо.
Як я дебагую, які символічні імена доступні?
Використання SymbologyRegistry.get_definition() щоб перевірити, чи зареєстрована символіка. Якщо вона піднімає SymbologyNotFoundError,Сім підтримуваних символіки: код 128, код 39, EAN-13, EAn-8, QR-код, UPC-A та UPSC.