エンコード オプションの使用
エンコードオプションの使用
各バーコードシンボロジーは Aspose.BarCode FOSS for Python において、エンコード動作を制御する専用のオプションクラスを持ちます。すべてのオプションクラスは EncodeOptions から継承され、gs1_enabled と eci_assignment_number のプロパティをシンボロジー間で共有します。
Code128Options
Code128Options はエンコーダが選択する Code 128 の文字セットを制御します。encode_mode プロパティは Code128EncodeMode 列挙値を受け取ります。
| Mode | 説明 |
|---|---|
AUTO | 最もコンパクトなエンコーディングを自動的に選択します |
CODE_A | 大文字、数字、制御文字 |
CODE_B | 大文字、小文字、数字 |
CODE_C | 数字ペア — 数字のみのデータに最適化 |
CODE_AB | コードAとコードBの間で切り替えます |
CODE_AC | コードAとコードCの間で切り替えます |
CODE_BC | コードBとコードCの間で切り替えます |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))
# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))
# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))Code39Options
Code39Options はエンコーダが基本の43文字セットを使用するか、Full ASCII 拡張を使用するかを制御します。
| プロパティ | 型 | Default | 説明 |
|---|---|---|---|
full_ascii | bool | None | フルASCIIモードを有効にする(シフトペアによる128文字範囲) |
add_check_digit | bool | None | モジュロ-43のチェックディジットを付加する |
from aspose_barcode_foss import Code39Options
# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")
# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
"Hello, World!",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)QrOptions
QrOptions はすべてのシンボロジーの中で最も設定項目が多いです。
| プロパティ | 型 | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%), M (15%), Q (25%), H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (シンボルの寸法を制御) |
mask | int | 0–7 (手動マスクパターンの選択) |
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
# High error correction with byte encoding
bc = barcode.qr(
"https://example.com",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.H,
encoding_mode=QrEncodeMode.BYTE,
),
)
# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
"0123456789",
encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)
# Explicit version and mask
bc_v5 = barcode.qr(
"TEST",
encode=QrOptions(version=5, mask=3),
)Ean13Options
Ean13Options は EAN-13 バーコードのチェックデジット処理を制御します。
| プロパティ | 型 | Default | 説明 |
|---|---|---|---|
allow_check_digit_input | bool | None | 事前に計算されたチェックディジットを含む13桁の入力を受け付けます |
from aspose_barcode_foss import Ean13Options
# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")
# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)Ean8Options
Ean8Options は Ean13Options と同様に動作しますが、8桁のEANバーコード用です。ペイロード桁として7桁を指定してください(ライブラリが8桁目を計算します)。8桁の入力を行う場合は allow_check_digit_input=True を設定してください。
from aspose_barcode_foss import Ean8Options
bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))UpcaOptions と UpceOptions
UpcaOptions と UpceOptions は EAN オプションと同じ allow_check_digit_input パターンに従います。UpceOptions には number_system プロパティもあります。
from aspose_barcode_foss import UpcaOptions, UpceOptions
# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")
# UPC-E with pre-computed check digit
bc_e = barcode.upce(
"01234565",
encode=UpceOptions(allow_check_digit_input=True),
)EncodeOptions 基本プロパティ
すべてのオプションクラスは、EncodeOptionsからこれらのプロパティを継承します:
| プロパティ | 型 | 説明 |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
ヒントとベストプラクティス
- 特定の理由で文字セットを制限する必要がない限り、
Code128EncodeMode.AUTOを使用してください — 任意の入力に対して最も短いバーコードを生成します。 - 損傷しやすい表面に印刷されるQRコードには、
QrErrorCorrectionLevel.Hを設定してください。 - デフォルトではライブラリにチェックディジットの計算を任せましょう — 他システムから事前に検証されたデータを受け取る場合にのみ、
allow_check_digit_input=Trueを設定してください。 - 数字のみのQRデータには、シンボルサイズを最小化するために
QrEncodeMode.NUMERICを使用してください。
一般的な問題
| 問題 | 原因 | 修正 |
|---|---|---|
InvalidInputError の Code 39 | 入力に小文字が含まれています | Code39Optionsにfull_ascii=Trueを設定する |
| QR code が大きすぎます | データ長に対してバージョン設定が低すぎます | 明示的な version を削除するか、増やしてください |
| EAN-13 のチェックデジットが間違っています | 13桁の入力にallow_check_digit_input=Trueがありません | 12桁を入力(自動)するか、オプションをTrueに設定してください |
SymbologyNotFoundError | generate() のシンボロジー名が綴り間違いです | 次のいずれかを使用してください: code128, code39, ean13, ean8, qr, upca, upce |