BarcodeLib 紀錄 - 產生EAN13

BarcodeLib, NET6, EAN13,為工作紀錄

引言

工作需要生成EAN13條碼。EAN13是國際商品條碼要花錢買的。

引用函式庫

源碼紀錄-產生 EAN13 barcode 圖檔

@using BarcodeLib
@using System.Drawing
@page "/barcodelab"

<h2>BarcodeLib Lab</h2>

<input type="text" @bind-value=@ean13Code />
<button @onclick=@HandleClick>生成 Barcode</button>

<p>@b64png</p>
<img src="@b64png" />

@if (errMsg != null)
{
  <div class="alert alert-danger fade show" role="alert">
    <strong>錯誤訊息</strong> @errMsg
  </div>
}

@code {
  string ean13Code = "978020137962";
  string b64png = "";
  string? errMsg = null;

  void HandleClick()
  {
    try
    {
      b64png = MakeEAN13BarcodeImage(ean13Code);
      StateHasChanged();
    }
    catch (Exception ex)
    {
      errMsg = ex.Message;
      StateHasChanged();
    }
  }

  ///※ 產生 EAN13 Barcode Image 並轉成 Base64 格式的 PNG Image。
  string MakeEAN13BarcodeImage(string code)
  {
    Barcode b = new Barcode();
    b.IncludeLabel = true; // 220,70 : 290, 120 :
    using Image img = b.Encode(BarcodeLib.TYPE.EAN13, code, 220, 70);
    using var ms = new MemoryStream();
    img.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
    string b64Image = Convert.ToBase64String(ms.ToArray());
    return $"data:image/png;base64,{b64Image}";
  }
}   

沒圖沒真象-產生 EAN13 barcode 圖檔

EOF

Last updated