2013年1月10日 星期四

條碼製作

條碼產生的方法有許多種,常見的方法有:

  • 字型
  • 第三方服務:透過網址產生條碼圖片
  • 使用Libary:
    • Barcode Rendering Framework(barcoderender.codeplex.com)
      • Code 11,Code 25,Code 39,Code 93,Code 128
      • Code EAN 13,Code EAN 8
      • Code PDF417
      • Code QR

範例:

private string GetBarcodeImage(string CODE,int BarHeight)
{
try
{
BarcodeSymbology b = BarcodeSymbology.CodeEan13;
Image img = BarcodeDrawFactory.GetSymbology(b).Draw(CODE, BarHeight,1);
return Convert.ToBase64String(UtilityUI.ImageToBuffer(img, System.Drawing.Imaging.ImageFormat.Jpeg));
}
catch (Exception ex)
{
return ex.ToString();
}
}

/// <summary>
/// 將 Image 轉換為 Byte 陣列。
/// </summary>
/// <param name="Image">Image 。</param>
/// <param name="imageFormat">指定影像格式。</param>
public static byte[] ImageToBuffer(Image Image, System.Drawing.Imaging.ImageFormat imageFormat)
{
if (Image == null) { return null; }
byte[] data = null;
using (MemoryStream oMemoryStream = new MemoryStream())
{
//建立副本
using (Bitmap oBitmap = new Bitmap(Image))
{
//儲存圖片到 MemoryStream 物件,並且指定儲存影像之格式
oBitmap.Save(oMemoryStream, imageFormat);
//設定資料流位置
oMemoryStream.Position = 0;
//設定 buffer 長度
data = new byte[oMemoryStream.Length];
//將資料寫入 buffer
oMemoryStream.Read(data, 0, Convert.ToInt32(oMemoryStream.Length));
//將所有緩衝區的資料寫入資料流
oMemoryStream.Flush();
}
}
return data;
}

//====

<Image Name="ImgCode">

  <Source>Database</Source>

  <Value>=System.Convert.FromBase64String(Fields!CODEIMG.Value)</Value>

  <MIMEType>image/png</MIMEType>

  <Style>

    <Border>

      <Style>None</Style>

    </Border>

  </Style>

</Image>

沒有留言:

張貼留言