0

c# Zxing を使用して 1D EAN8 バーコードを生成したいと考えています。2D QRコードを生成するためのコード例とドキュメントしか見つけることができませんでした

      var writer = new BarcodeWriter
  {
     Format = BarcodeFormat.QR_CODE,
     Options = new QrCodeEncodingOptions
     {
        Height = height,
        Width = width
     }
  };
  return writer.Write(textForEncoding);

これは実行できて正常に動作しますが、「1DCodeEncodingOptions」または同様の名前の関数はありません。私は試した

      var writer = new BarcodeWriter
  {
     Format = BarcodeFormat.EAN_8

  };
  return writer.Write("1234567");

しかし、インデックスエラーが発生します。

編集:構文は正しいですが、期待されるサイズがわからないため、適切なバーコードが生成されず、デフォルトもないようです。

ZXingを使用。ZXing.OneD の使用

  var writer = new BarcodeWriter
  {
     Format = BarcodeFormat.EAN_8,
        Options = new ZXing.Common.EncodingOptions
        {
            Height = 100,
            Width = 300
        }
  };
  return writer.Write("12345678");
4

1 に答える 1

1

12345678 は有効な EAN8 バーコードではありません。1234567 のチェック ディジットは 0 です。EAN 8 : チェックサム ディジットの計算方法を参照してください。チェックサムの計算方法について。

ZXing は無効なバーコードの作成を止めません (少なくとも私が使用しているバージョン 0.11 では、Codeplex の現在のソースはそうであるように見えますが)、スキャンはしません。スキャナはチェックサムを使用して、データが正しく読み取られたことを確認します。

商取引で EAN8 を使用する場合は、各国のGS1 メンバー組織から GTIN-8 を取得する必要があります。ストアでのみ販売する場合は、制限付き配布プ​​レフィックスのいずれかを使用する必要があります

製品を小売サプライ チェーンに入れる必要がない場合は、別のバーコード形式をお勧めします。

Interleaved 2 of 5 ( BarcodeFormat.ITF) は非常にコンパクトですが、数字しか含めることができません。セルフチェック機能がなく、角度によってはバーコードを誤って読み取ってしまう設計上の欠陥があります。バーコードの上下に黒いバー (ベアラー バーと呼ばれる) を配置することをお勧めします。ZXing には、このオプションが表示されません。

次にコンパクトな形式はBarcodeFormat.CODE_128、Code Set C を使用した Code 128 ( ) です。これは、1 つのモジュール(6 つのバーとスペースの 1 つのブロック) で 2 桁をエンコードします。形式は自己チェックです (スキャナーによって取り除かれるチェック文字が常にあります)。一部のスキャナは、コード セット C を適切に処理しません。コード セット B を強制するCode128EncodingOptionsには、代わりに を使用し、Common.EncodingOptionsに設定ForceCodesetBtrueます。

于 2013-11-11T17:39:24.367 に答える