Вивчення проблем Aspose.Words FOSS для Python

Вивчення проблем 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.

See Also

 Українська