99 lines
3.9 KiB
C#
99 lines
3.9 KiB
C#
using Ease.Core.Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Drawing.Imaging;
|
|
using System.IO;
|
|
using System.Text;
|
|
|
|
namespace HRM.BO
|
|
{
|
|
public class BarcodeHelper
|
|
{
|
|
#region Private Functions
|
|
private static void CropImage(int x, int y, int width, int height, string barcodePath, string barcode)
|
|
{
|
|
string imagePath = barcodePath + barcode + ".png";
|
|
Bitmap croppedImage;
|
|
|
|
// Here we capture the resource - image file.
|
|
using (var originalImage = new Bitmap(imagePath))
|
|
{
|
|
Rectangle crop = new Rectangle(x, y, width, height);
|
|
|
|
// Here we capture another resource.
|
|
croppedImage = originalImage.Clone(crop, originalImage.PixelFormat);
|
|
|
|
} // Here we release the original resource - bitmap in memory and file on disk.
|
|
|
|
// At this point the file on disk already free - you can record to the same path.
|
|
croppedImage.Save(imagePath, ImageFormat.Png);
|
|
|
|
// It is desirable release this resource too.
|
|
croppedImage.Dispose();
|
|
}
|
|
#endregion
|
|
public static string GenerateBarcode(EnumBarcodeFor barcodeType, string employeeNo, int id)
|
|
{
|
|
if (employeeNo == null)
|
|
{
|
|
employeeNo = string.Empty;
|
|
}
|
|
return employeeNo.Trim().PadLeft(5, '0') + ((int)barcodeType).ToString().PadLeft(3, '0') + id.ToString().Trim().PadLeft(4, '0');
|
|
}
|
|
public static string GenerateBarcodeImage(string generatePath, string barcode)
|
|
{
|
|
try
|
|
{
|
|
//BarcodeSettings.ApplyKey("23423432");
|
|
//BarcodeSettings settings = new BarcodeSettings();
|
|
//settings.Type = BarCodeType.Codabar;
|
|
//settings.Unit = GraphicsUnit.Pixel;
|
|
//settings.ShowTextOnBottom = true;
|
|
//settings.ResolutionType = ResolutionType.UseDpi;
|
|
////input data
|
|
//settings.Data = barcode;
|
|
|
|
////string barcodeData = string.Empty;
|
|
////barcodeData = "Letter Type : " + lr.Purpose.ToString().Replace("_", " ") + "\n" + "Letter Issued For : " + SessionManager.CurrentEmployee.Name + "\n" + "Letter Issuance Date : " + DateTime.Now.ToString("dd MMM yyyy") + "\n" + "Letter Barcode Status : Verified";
|
|
////data = barcodeData;
|
|
////settings.Data = data;
|
|
|
|
////set fore color
|
|
//settings.ForeColor = Color.Black;
|
|
////set back color
|
|
//settings.BackColor = Color.White;
|
|
//settings.X = 1;// barWidth;
|
|
//settings.Y = 5;
|
|
//settings.BarHeight = 30;
|
|
//settings.QRCodeECL = QRCodeECL.L;
|
|
|
|
//BarCodeGenerator generator = new BarCodeGenerator(settings);
|
|
//System.Drawing.Image QRbarcode = generator.GenerateImage();
|
|
// QRbarcode.Save(Server.MapPath("~//LetterTempFolder//") + barcode + ".png", System.Drawing.Imaging.ImageFormat.Png);
|
|
string fullPath = generatePath + barcode + ".png";
|
|
if (File.Exists(fullPath))
|
|
{
|
|
File.Delete(fullPath);
|
|
}
|
|
//QRbarcode.Save(fullPath, System.Drawing.Imaging.ImageFormat.Png);
|
|
// CropImage(0, 14, 152, 50, generatePath, barcode);
|
|
|
|
return fullPath;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
while (ex != null)
|
|
{
|
|
sb.AppendFormat("{0} -->", ex.Message);
|
|
ex = ex.InnerException;
|
|
}
|
|
throw new Exception(string.Format("Error generating Barcode. message: {0}", sb.ToString()));
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
} |