C#でバーコード出力処理したいときに使われるZXing.NETについてご紹介します。
本稿ではZXing.NETを使ってバーコードをPNG形式の画像ファイル、base64形式で出力する2つの方法を取り扱います。
.NET系でWebアプリケーション開発をしていた際に、活用していましたので参考になれば幸いです。
ZXing.NETとは
ZXing.NET(ゼブラクロッシングドットネット)は、バーコードおよびQRコードの生成と解析を行うための.NET向けのオープンソースライブラリです。
もともとはJava向けに開発されましたが、その後さまざまなプログラミング言語向けに移植されました。その中のZXing.NETは、C#やVB.NETなどの.NET系で使用するために開発されました。
様々な種類のバーコードの生成だけでなく、バーコードにエンコードされた情報を取得することができます。
導入
ZXing.NETのインストールしましょう。
本稿ではCode128を使ってバーコード生成を行ってみます。
VisualStudioの画面上部[プロジェクト]の[NuGet パッケージの管理]をクリックすると、
Nugetパッケージマネージャーが開くので、「参照」タブを選択した状態で検索欄に「ZXing.NET」と入力します。
検索結果の赤枠部で囲まれている「ZXing.NET」を選択して、インストールします。
注意! 2023年7月時点での最新バージョンは0.16.9ですが、私の環境だとロジック周りでエラーが発生したので動作が確認できたバージョン0.16.6を使用しています。
方法1:画像形式でバーコードを生成
バーコードをpng形式の画像ファイルで生成するメソッドです。
関数内には下記の名前参照を追加しています。
using ZXing;
using System.Drawing;
private void Create_Barcode_Image()
{
var barcodeWriter = new BarcodeWriter();
//バーコードの種類
barcodeWriter.Format = BarcodeFormat.CODE_128;
//サイズ
barcodeWriter.Options.Height = 40;
barcodeWriter.Options.Width = 200;
//マージン
barcodeWriter.Options.Margin = 1;
//バーコード生成
Bitmap barcodeImg = barcodeWriter.Write("1234567890");
//作成した画像を保存
barcodeImg.Save("zxingSample.png");
}
方法2:base64形式でバーコードを生成
バーコードをbase64形式で生成するメソッドです。
関数内には下記の名前参照を追加しています。
using ZXing;
using System.Drawing;
using System.Drawing.Imaging;
private string Create_Barcode_Base64()
{
var barcodeWriter = new BarcodeWriter();
//バーコードの種類
barcodeWriter.Format = BarcodeFormat.CODE_128;
//サイズ
barcodeWriter.Options.Height = 40;
barcodeWriter.Options.Width = 200;
//マージン
barcodeWriter.Options.Margin = 1;
//バーコード生成
Bitmap barcodeImg = barcodeWriter.Write("1234567890");
using (MemoryStream ms = new MemoryStream())
{
barcodeImg.Save(ms, ImageFormat.Png);
byte[] bytes = ms.ToArray();
//base64に変換
return Convert.ToBase64String(bytes);
}
}
最後に
ZXing.NETを使って1次元バーコードを画像ファイル形式、base64形式で出力する方法をご紹介しました。備忘録のために書いてるところもありますので、わかりずらい点もあるかもしれませんが、参考になりましたら幸いです。
コメント