トラブルシューティング Aspose.BarCode FOSS for Python
このガイドでは、Aspose.BarCode FOSS for Python を使用してバーコードを生成する際に最も一般的なエラーと問題を取り上げます。各セクションでは、エラーの内容、その原因、そして対処方法を説明します。
一般的なエラー
InvalidInputError
InvalidInputError は、エンコーダに渡されたデータがシンボロジーの文字セットまたは長さの要件に合致しない場合に発生します。
****典型的な原因::
- 数字専用シンボロジーにアルファベット文字を渡すこと (EAN-13, EAN-8, UPC-A, UPC-E)
- シンボロジーの固定長要件と一致しない文字列を提供すること(例: EAN-13 は正確に12桁または13桁が必要)
- シンボロジーがサポートする文字セット外の文字を含める (例: Code 39 のベースモードは大文字、数字、いくつかの特殊文字のみをサポートします)
修正: 呼び出す前に入力データを検証してください BarcodeService.generate(). シンボロジープロファイルの capabilities and 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 Code データ)
- エンコードオプションの競合 (例: 小文字を含むデータで
Code128EncodeMode.CODE_Aを要求する場合)
修正: 渡されたエンコードオプションを確認してください generate(). Code 128 の場合は、使用してください Code128EncodeMode.AUTO エンコーダに最適なサブセットを選択させます。QR Code の場合は、より低いものを試してください 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") - ライブラリがサポートしていないシンボロジーを使用している(ライブラリは Code 128、Code 39、EAN-13、EAN-8、QR Code、UPC-A、および UPC-E のみをサポートしています)
修正: サポートされている7つのシンボロジー識別子のいずれかを使用してください: "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 は、レンダラーがエンコードされたシンボルから出力を生成できなかったときに発生します。
****典型的な原因::
- 無効な
RenderOptions値(例: 負のscaleまたはmodule_width) PdfRendererを使用しようとしています(現在のバージョンでは PDF レンダリングがNotImplementedErrorを発生させます)
修正: 使用 SvgRenderer or 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)UnsupportedCapabilityError と UnsupportedFeatureError
UnsupportedCapabilityError は、シンボロジーが要求された機能をサポートしていない場合に発生します(例: GS1 モードが GS1 のサポートがないシンボロジーの場合)。UnsupportedFeatureError は、ライブラリで実装されていない機能に対して発生します。
修正: シンボロジープロファイルの capabilities プロパティを確認して、利用可能な機能を特定してください。サポートされていないシンボロジーに対して GS1 モードを要求しないでください。
環境の問題
Python バージョン
Aspose.BarCode FOSS は Python 3.12 以降が必要です。SyntaxError やインポート失敗が表示された場合は、Python のバージョンを確認してください:
python --versionインストールの問題
パッケージをソースからビルドします。
このライブラリは純粋な 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 が発生した場合、そのシンボロジーは利用できません。サポートされている7つのシンボロジーは、Code 128、Code 39、EAN-13、EAN-8、QR Code、UPC-A、および UPC-E です。