1、首先需要包含头文件
using ZXing;
using ZXing.Common;
2、根据规则生成条码图片
private Bitmap CreateBarCode(string barCode,int width,int height)
{
try
{
// 条形码类型(此处以EAN_13为例)
//BarcodeFormat barcodeFormat = BarcodeFormat.EAN_13;
BarcodeFormat barcodeFormat = BarcodeFormat.CODE_128;
// 条形码的输出文件名
string outputFilePath = "output_barcode.png";
// 创建条形码编码器实例
BarcodeWriter barcodeWriter = new BarcodeWriter
{
// 设置条形码编码格式
Format = barcodeFormat,
// 设置条形码的大小(宽度和高度,单位像素)
//Options = new ZXing.Common.EncodingOptions { Width = 300, Height = 100 },
Options = new EncodingOptions
{
Width = width,
Height = height,
Margin = 10 // 设置边距以避免锯齿
//PureBarcode = false //是否是纯码,如果为 false,则会在图片下方显示数字
}
// 可选:设置条形码的颜色(前景色为黑色,背景色为白色)
// Options.ForegroundColor = Color.Black;
// Options.BackgroundColor = Color.White;
};
// 生成条形码图像
Bitmap barcodeBitmap = barcodeWriter.Write(barCode);
var barcodeImage = ResizeBarcode(barcodeBitmap, barcodeWidth / 10, barcodeHeight / 10);
// 保存条形码到文件
barcodeImage.Save(outputFilePath);
return barcodeImage;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
return null;
}
}
public Bitmap ResizeBarcode(Bitmap original, int widthMm, int heightMm)
{
float dpi = printResolution; // 假设打印机分辨率为300 DPI
float widthPx = widthMm * dpi / 25.4f; // 将毫米转换为像素,25.4mm = 1英寸
float heightPx = heightMm * dpi / 25.4f; // 同上
return new Bitmap(original, new Size((int)widthPx, (int)heightPx));
}
3、打印条码
private void BarPrint(Bitmap barcodeBitmap)
{
try
{
PrintDocument pd = new PrintDocument();
pd.PrintPage += (sender, e) =>
{
//使绘图质量最高,即消除锯齿
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
// 在打印页面上绘制条形码图像
e.Graphics.DrawImage(barcodeBitmap, new Point(10, 10));
};
//预览功能
//PrintPreviewDialog printPreviewDialog = new PrintPreviewDialog();
//printPreviewDialog.Document = pd;
//printPreviewDialog.ShowDialog();
pd.Print();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
978

被折叠的 条评论
为什么被折叠?



