テキストおよび日常ツール · QR & バーコード ツールキット
Code 128 コード セット A、B、および C: 数字を使用するとバーコードが短くなる理由
· 仕組み
エンコード 印刷 開発者ワークフロー
3 つの Code 128 コード セット、コード セット C がシンボルごとに 2 桁をパックする方法、および数値のみのラベルが混合ラベルよりも著しく狭くなる理由について説明します。
ラベルに適合しないバーコード — フォント サイズだけでなく文字の選択が Code 128 シンボルの幅を制御する方法
Code 128 幅は、キャプション フォントの縮小ではなく、出力されるシンボル シーケンスによって制御されます。 ToolAcre のテストでは、自動エンコーダーがペアの数字を使用できるため、同じサイズの文字の連続よりも数字の連続がよりコンパクトにエンコードされることが示されています。
`generateCode128` はバイナリ パターンを含む `moduleCount` を返すため、ラベル デザイナーは結果を直接測定できます。文字長が等しい 2 つの文字列は、一方がペアの数字を許可し、もう一方が個別の文字またはセットの変更を必要とする場合、モジュール数が異なる可能性があります。エクスポートされた幅には固定のクワイエット ゾーンも含まれるため、キャプションを縮小したりフォントを変更してもバー自体を減らすことはできません。
1 つのテーブル内のコード セット A、B、および C — 文字と大文字、大文字と小文字、および数字のペアを制御します
3 つのコード セットは、Code 128 レパートリーのさまざまな部分をカバーします。A は大文字と制御に便利で、B は印刷可能な大文字と小文字の混合テキストをカバーし、C は 10 進数のペアを表します。 ToolAcre はユーザーにセットを手動で選択するように要求しません。
ToolAcre は、自動エンコーダーが完全な入力を持ち、一貫してトランジションを選択できるため、手動セット選択を意図的に非表示にします。これにより、ユーザーが文字に C を強制的に設定したり、コントロール指向のセットを通常のテキストに間違えたりする UI を回避できます。境界も同様に重要です。自動選択は有効な ASCII 文字列を最適化しますが、アクセント付き文字を音訳したり、コード ポイント 0 から 127 を超えて Code 128 を拡張したりすることはありません。
コード セット C が桁の幅を半分にする理由 (2 桁ごとに 1 つのシンボル)、および奇数の桁数で何が起こるか
セット C は、完全な数字の各ペアを 1 つのデータ シンボルに変換するため、長い偶数長の数値の実行に必要なシンボルは少なくなります。カウントが奇数の場合、エンコーダは一致しない桁のセット C を残すか遅らせる必要があり、正確な結果は自動セグメンテーションに依存します。
奇数の実行は、「シンボルごとに 2 桁」のショートカットの限界を示しています。 `12345` では、最後の桁は set-C ペアを形成できないため、エンコーダーは別の戦略と遷移オーバーヘッドを通じてそれを考慮する必要があります。実行の前に `A` を付けると、ペアになっていない文字がもう 1 つ追加されます。セグメンテーションの決定はキャプションではなく、出力されたモジュールで表されるため、表示された 6 文字から幅を推定するのではなく、両方の値を生成します。
バーコードの途中で切り替える — 余分なシンボルを犠牲にして、シフト文字とコード変更文字を使用して 1 つのバーコードを混合セットにする方法
保存されたシンボルが切り替えオーバーヘッドを上回る場合、混合識別子はセット間を切り替えることができます。 CODE128_AUTO エンコーダーがその決定を行います。アプリケーションは、すべての孤立した数字ペアが特定の遷移をトリガーすることを保証するのではなく、出力をチェックします。
スイッチ シンボルはスペースを消費します。つまり、文字内の短い数値アイランドはセット C に入力する価値がない可能性があります。 CODE128_AUTO は、2 桁ごとにスイッチをトリガーするというルールではなく、文字列全体から決定します。これは、シリアルに句読点を挿入するとシリアルが複数のデータ シンボル分拡張される理由も説明します。これにより、有用な実行が分割され、中断の前後で遷移が発生する可能性があります。
カウンティング モジュール — シンボルごとに 11 モジュール、ストップ パターン用に 13 モジュール、さらに印刷幅を予測するためのクワイエット ゾーン
通常の Code 128 シンボルは 11 個のモジュールを占有しますが、停止パターンはより長く、レンダラーは両側に 10 個の狭いバーのクワイエット ゾーンを追加します。発行されたモジュールをカウントすると、表示される入力文字をカウントするよりも信頼性高く幅を予測できます。
レンダラは、各バイナリ モジュールをピクセルの固定倍数に変換し、両側に 10 個の狭いモジュールのクワイエット ゾーンを追加します。その停止シーケンスは 13 モジュールですが、通常のシンボルは 11 モジュール グループで始まります。これらの実装事実により、レイアウトは返されたモジュール数を使用して候補ピクセル幅を計算できます。物理的な印刷物が特定のデバイスでスキャンされることを保証するものではありません。
実用的な例 — 同じ 12 文字のシリアルを数字のみにし、文字の接頭辞を付けて、記号の数と幅を比較します。
ジェネレーターで 123456789012 と A12345678901 を比較します。全桁入力はエンコーダに連続した一連のペアを与えますが、プレフィックスは混合シーケンスを強制します。 ToolAcre のテストでは、これと同じ原理を使用して、桁データが狭いことを確認します。
`123456789012` や `A12345678901` などの制御されたペアを使用し、同じエクスポート設定を保持して、両方の SVG viewBox 幅を比較します。 2 番目の値には、両方に 12 文字が含まれている場合でも、異なる開始セットと混合エンコーディングが必要になる場合があります。これは、より小さいモジュール サイズを置き換えるよりも優れた設計の証拠です。これにより、カウントは維持されますが、プリンターとリーダーがすべてのバーを解決することが難しくなります。
この内容の対象外 — プリンターの解像度、リボンの品質、および小売バーコードの GS1 ルール
この比較では、リボンの品質、プリンターのドット、GS1 ラベルのルールについては何も語られていません。また、ToolAcre を小売バーコード サービスに変えるわけではありません。設定および実装されたシンボルは、管理する識別子に対してプレーン Code 128 です。
プリンターのドット、インクの広がり、リボンの転写は、ToolAcre が正確な形状を作成した後に行われます。 GS1 ルールは、エンコードするデータとコントロールを定義することによって、その前に発生します。どちらの問題も、コードセットの自動選択では解決されません。技術的にコンパクトな SVG であっても、間違ったシンボル、解像度が低い印刷物、または受信データベースに登録されていない識別子である可能性があります。
要点 — 可能な場合は数字を含むラベルをデザインし、QR & バーコード ツールキットでバーコードを生成して幅を確認します
コンパクトさが重要な場合は、便利な数字を使用して内部識別子を設計しますが、入力する必要がある人が理解できるようにしてください。実際のモジュール数が重要な幅となるため、ラベルをレイアウトする前に最終パターンを生成します。
コンパクトさは安定した動作に従属するべきです。数字キーを短くするとモジュールを節約できますが、不透明なシーケンスでは破損したラベルを手動で入力する必要がある場合に転記ミスが増加する可能性があります。スタッフとソフトウェアが使用できるスキームを選択し、ラベル テンプレートを修正する前に代表的な極端値を生成し、近くのテキストのために空白スペースを再利用する代わりにクワイエット ゾーンを保存します。