Giải quyết vấn đề Aspose.Words FOSS cho Python
Hướng dẫn này bao gồm các lỗi và vấn đề phổ biến nhất khi tạo mã thanh với Aspose.BarCode FOSS cho Python (pip install aspose-barcode-fossMỗi phần mô tả lỗi, nguyên nhân của nó và cách sửa chữa.
Những sai lầm phổ biến
InvalidInputError
InvalidInputError được nâng lên khi dữ liệu chuyển đến mã hóa không phù hợp với các yêu cầu của biểu tượng tính hoặc chiều dài.
Nguyên nhân thường:
- Chuyển đổi các ký tự chữ cái sang một biểu tượng chỉ số (EAN-13, EAN-8, UPC-A, U PC-E)
- Cung cấp một dòng có chiều dài không phù hợp với yêu cầu độ dài cố định của biểu tượng (ví dụ: EAN-13 đòi hỏi chính xác 12 hoặc 13 chữ số)
- Trong đó có các ký tự bên ngoài bộ được hỗ trợ của biểu tượng (ví dụ, chế độ cơ sở Code 39 chỉ hỗn hợp chữ cái trên, số và một vài ký hiệu đặc biệt)
Đặt lại : Xác định dữ liệu nhập trước khi gọi điện thoại BarcodeService.generate().Kiểm tra hồ sơ biểu tượng của bạn capabilities và known_limitations thuộc tính cho thiết lập nhân vật và hạn chế chiều dài.
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 được nâng lên khi mã hóa gặp một thất bại nội bộ sau khi xác thực nhập vào qua. điều này ít phổ biến hơn so với InvalidInputError.
Nguyên nhân thường:
- Dữ liệu thông qua xác thực ban đầu nhưng thất bại trong quá trình mã hóa phân khúc (ví dụ: dữ liệu Mã QR vượt quá khả năng cho mức sửa lỗi đã chọn)
- Các tùy chọn mã hóa xung đột (ví dụ: yêu cầu)
Code128EncodeMode.CODE_Avới dữ liệu có chứa các ký tự dưới đây)
Đặt lại : Xem các tùy chọn mã hóa đã được chuyển đến generate().Đối với mã 128, sử dụng Code128EncodeMode.AUTO để cho phép mã hóa chọn phần phụ tối ưu. Đối với Mã QR, hãy thử một phần dưới đây QrErrorCorrectionLevel hoặc giảm chiều dài dữ liệu.
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 được phát triển khi tên biểu tượng đã chuyển sang BarcodeService.generate() không được đăng ký trong SymbologyRegistry.
Nguyên nhân thường:
- Tên biểu tượng bị lừa đảo (ví dụ:.
"code_128"Thay vì"code128") - Sử dụng một biểu tượng không được thư viện hỗ trợ (thiết tệp chỉ hỗn hợp mã 128, mã 39, EAN-13, Ean-8, QR Code, UPC-A và U PC-E)
Đặt lại : Sử dụng một trong bảy biểu tượng được hỗ trợ: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce".Tên là trường hợp không nhạy cảm nhưng phải phù hợp với các ID đã đăng ký.
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 được nâng lên khi renderer không thể sản xuất kết quả từ một biểu tượng mã hóa.
Nguyên nhân thường:
- Invalid
RenderOptionsGiá trị (ví dụ: tiêu cực)scalehoặcmodule_width) - cố gắng sử dụng
PdfRenderer(PDF rendering nâng cấp)NotImplementedErrortrong phiên bản hiện tại)
Đặt lại : Sử dụng SvgRenderer hoặc PngRenderer Thay vì PdfRenderer.Kiểm tra rằng RenderOptions Các tài sản có giá trị tích cực hợp lệ.
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)Không hỗ trợKhông khả năngError và UnsupportedFeatureEror
UnsupportedCapabilityError được nâng lên khi một biểu tượng không hỗ trợ khả năng yêu cầu (ví dụ, chế độ GS1 cho một hội tượng thiếu hỗn hợp GS1). UnsupportedFeatureError được nâng cấp cho các tính năng không thực hiện trong thư viện.
Đặt lại : Kiểm tra hồ sơ biểu tượng capabilities Không yêu cầu chế độ GS1 cho các biểu tượng không hỗ trợ nó.
Vấn đề môi trường
Phiên bản Python
Aspose.BarCode FOSS requires Python 3.12 or later. If you see SyntaxError hoặc nhập lỗi, kiểm tra phiên bản Python của bạn:
python --versionVấn đề cài đặt
Nếu pip install aspose-barcode-foss không thành công, đảm bảo pip được cập nhật:
pip install --upgrade pip
pip install aspose-barcode-fossThư viện là Python tinh khiết không có phụ thuộc bản địa. Nếu cài đặt thành công nhưng nhập khẩu thất bại, hãy chắc chắn rằng bạn không bóng gói với một tệp địa phương được gọi là aspose_barcode_foss.py.
Lỗi nhập khẩu
Việc nhập khẩu đúng là:
import aspose_barcode_fosshoặc nhập khẩu các lớp cụ thể:
from aspose_barcode_foss import BarcodeService, RenderOptionsThường xuyên hỏi câu hỏi
Tại sao mã thanh EAN-13 của tôi hiển thị một số khác so với số mà tôi nhập?
EAN-13 tự động tính toán một số kiểm tra. nếu bạn vượt qua 12 số, số 13 được thêm vào. Nếu bạn đi qua 13 số thì số cuối cùng sẽ được xác nhận như số check. Ean13Options Đang xemallow_check_digit_input quyền kiểm soát hành vi này.
Tại sao kết quả PDF tăng NotImplementedError?
PdfRenderer.render() và Barcode.to_pdf() chưa thực hiện. sử dụng Barcode.to_svg() hoặc Barcode.to_png() thay vào đó, hoặc để lại với SvgRenderer hoặc PngRenderer trực tiếp .
Làm thế nào tôi có thể giải thích những tên biểu tượng nào có sẵn?
Sử dụng SymbologyRegistry.get_definition() để kiểm tra xem có một biểu tượng được đăng ký hay không. nếu nó tăng lên SymbologyNotFoundError,7 biểu tượng được hỗ trợ là: Mã 128, Mục 39, EAN-13, Ean-8, QR Code, UPC-A và U PC-E.