【C#】ZXingを使用して、バーコードを生成する方法を解説

バーコードは、現代のあらゆる産業や商取引に欠かせない存在です。商品の識別や在庫管理、トラッキングなど、さまざまな場面で利用されています。バーコードを生成するためのツールやライブラリは多く存在しますが、その中でも「ZXing(Zebra Crossing)」は、オープンソースであることから幅広く利用されています。

ZXingは、1次元および2次元バーコードの生成と読み取りに対応しているライブラリです。特にC#環境での使用が容易で、簡単にバーコードを生成できることから、エンタープライズシステムや小規模アプリケーションまで幅広く活用されています。

この記事では、C#でZXingライブラリを使用してバーコードを生成する方法をステップバイステップで解説していきます。また、バーコードのカスタマイズや画像ファイルとしての保存方法も紹介します。バーコード生成の基本から、実際にプロジェクトで使える具体的な応用例までをカバーしていきますので、ぜひ最後までご覧ください。

ZXingライブラリのインストール

以下の手順に従って、プロジェクトにZXing.Netをインストールしましょう。

1. Visual Studioを開き、ソリューションエクスプローラーでプロジェクト名を右クリックし、「NuGetパッケージの管理」を選択します。

2. NuGetのパッケージ一覧画面が表示されます。「参照」タブで「ZXing.Net」を検索し、一覧から「ZXing.Net」をクリックします。

3. バージョンを選択し、「インストール」ボタンをクリックします。

バーコードの基本生成方法

ZXingライブラリをプロジェクトにインストールしたら、早速バーコードを生成してみましょう。ここでは、最もシンプルなバーコードの生成の例を紹介します。この例では、EAN13形式のバーコードを生成し、画面に表示します。

EAN13バーコードの生成

以下に、C#を使用してバーコードを生成する基本的なコード例を示します。

using System;
using ZXing;
using ZXing.Common;
using ZXing.Rendering;
using System.Drawing;
using System.Windows.Forms;

public class BarcodeGenerator
{
    public static void Main()
    {
        // 1. バーコードの内容を設定
        var barcodeContent = "123456789012";  // EAN13用に12桁の数値

        // 2. BarcodeWriterクラスのインスタンスを作成
        var barcodeWriter = new BarcodeWriter
        {
            Format = BarcodeFormat.EAN_13,  // バーコードのフォーマットを指定
            Options = new EncodingOptions
            {
                Width = 300,  // 幅
                Height = 150, // 高さ
                Margin = 10   // 余白
            },
            Renderer = new BitmapRenderer()  // 出力形式をBitmapに設定
        };

        // 3. バーコードを生成
        var barcodeBitmap = barcodeWriter.Write(barcodeContent);

        // 4. 生成したバーコードを表示するフォームを作成
        var form = new Form();
        var pictureBox = new PictureBox
        {
            Image = barcodeBitmap,
            Dock = DockStyle.Fill
        };
        form.Controls.Add(pictureBox);
        form.ShowDialog();
    }
}

コードの解説をしていきます。

  • barcodeContent
    barcodeContentには、バーコードに含めたいデータを入力しています。ここでは、12桁の数値を使用していますが、フォーマットに応じて必要な文字列を指定します。
  • BarcodeWriter
    指定されたフォーマットでバーコードを生成するクラスです。Formatプロパティで、バーコードのフォーマットを指定し、EAN_13を設定しています。
  • EncordingOptionsの設定
    WidthHeightプロパティでバーコードのサイズを指定し、Marginで周囲の余白を設定します。
  • BitmapRenderer
    生成されたバーコードをBitmap形式の画像としてレンダリングし、後で表示または保存できるようにしています。

上記コードを実行すると、指定されたEAN13形式のバーコードが生成され、アプリケーションウィンドウ内に表示されます。

バーコードをカスタマイズする

バーコードの生成において、必要に応じて見た目やフォーマットをカスタマイズすることが可能です。ZXingライブラリを使用すると、簡単にバーコードのサイズや色、フォーマットなどを変更できます。このセクションでは、いくつかの主要なカスタマイズオプションについて解説します。

QRコードを生成する

ZXingは、複数のバーコードフォーマットに対応しています。BarcodeWriter クラスの Format プロパティを変更することで、ほかのフォーマットに簡単に対応できます。ここでは、QRコードを生成するコードの書き方を見ていきましょう。

var barcodeWriter = new BarcodeWriter
{
    Format = BarcodeFormat.QR_CODE,  // フォーマットをQRコードに設定
    Options = new EncodingOptions
    {
        Width = 300,
        Height = 300,
        Margin = 10
    },
    Renderer = new BitmapRenderer()
};

上記のように、フォーマットの指定をQR_CODE に変更するだけで、バーコードフォーマットをQRコードに変更することができます。

バーコードのサイズを変更する

EncordingOptions クラスを使用して、バーコードの幅や高さをカスタマイズできます。バーコードのサイズを変更することで、見やすさや配置スペースに合わせたデザインが可能です。

Options = new EncodingOptions
{
    Width = 400,   // 幅を400ピクセルに設定
    Height = 200,  // 高さを200ピクセルに設定
    Margin = 5     // 余白を5ピクセルに設定
}

カラーを変更する

ZXingでは、バーコードの線の色や背景色を変更することができます。BitmapRenderer クラスのForegroundBackground プロパティを使用して、バーコードの色をカスタマイズします。

Renderer = new BitmapRenderer
{
    Foreground = Color.Blue,     // バーコードの線の色を青に設定
    Background = Color.LightGray // 背景色をライトグレーに設定
}

バーコードの下にテキストを表示させる

バーコードに関連する情報を視覚的に表示するために、バーコードの下にテキストを表示することができます。この場合、ZXing.RenderingTextRenderingOptions を使ってカスタマイズすることができます。

Options = new EncodingOptions
{
    Width = 400,
    Height = 200,
    Margin = 5,
    PureBarcode = false  // falseにすることでテキストが表示される
}

バーコードの生成に使用するデータを変更する

バーコードに含めるデータも柔軟に変更可能です。例えば下記のコードのように、URLなどをバーコードにエンコードすることができます。

var barcodeContent = "https://example.com";  // URLをQRコードにエンコード

バーコードを画像として保存する

生成したバーコードは、プログラム内で使用するだけでなく、画像ファイルとして保存することも可能です。ここでは、ZXingを使用してバーコードをPNGやJPEGなどの画像形式で保存する方法を解説していきます。

PNG形式でバーコードを保存する

using System;
using ZXing;
using ZXing.Common;
using ZXing.Rendering;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

public class BarcodeToFile
{
    public static void Main()
    {
        // 1. バーコードの内容を設定
        var barcodeContent = "123456789012";  // EAN13用の12桁の数値

        // 2. BarcodeWriterを使用してバーコードを生成
        var barcodeWriter = new BarcodeWriter
        {
            Format = BarcodeFormat.EAN_13,  // フォーマットをEAN13に設定
            Options = new EncodingOptions
            {
                Width = 300,
                Height = 150,
                Margin = 10
            },
            Renderer = new BitmapRenderer()
        };

        // 3. バーコードをBitmapとして生成
        var barcodeBitmap = barcodeWriter.Write(barcodeContent);

        // 4. 生成したバーコードをPNG形式でファイルに保存
        string filePath = "barcode.png";
        barcodeBitmap.Save(filePath, ImageFormat.Png);

        Console.WriteLine($"バーコードが {filePath} に保存されました");
    }
}

また、保存する画像の形式をJPEGやBMPなどに変更することも可能です。以下のように、ImageFormat を変更することで別のフォーマットとして保存できます。

barcodeBitmap.Save("barcode.jpg", ImageFormat.Jpeg);  // JPEG形式で保存
barcodeBitmap.Save("barcode.bmp", ImageFormat.Bmp);   // BMP形式で保存

まとめ

この記事では、C#でZXingライブラリを使用してバーコードを生成する方法について解説していきました。ZXingはオープンソースで使いやすいライブラリであり、1次元バーコードからQRコードまで、幅広いフォーマットに対応しています。

ZXingを活用することで、シンプルなバーコードを生成するアプリケーションから、ビジネスシステムでの利用まで幅広い場面での応用が期待できます。

この記事がお役に立てましたら幸いです。

コメント