nuget 下载 zxing.dll
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Printing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;
namespace despyPro.BarCode
{
public class BarCodeHelper
{
private static Bitmap CreateQRCode(string ssno)
{
EncodingOptions options = new QrCodeEncodingOptions
{
DisableECI = true,
CharacterSet = "UTF-8",
Width = 120,
Height = 120
};
BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.QR_CODE;
writer.Options = options;
return writer.Write(ssno);
}
public static void GetPrintPicture(PrintInfo printInfo, Graphics g)
{
int height = 5;
Font font = new Font("宋体", 10f);
Brush brush = new SolidBrush(Color.Black);
g.SmoothingMode = SmoothingMode.HighQuality;
int pointX = 5;
height += 8;
RectangleF layoutRectangle = new RectangleF(pointX, height, 230f, 85f);
g.DrawString(printInfo.Context, font, brush, layoutRectangle);
var image = CreateQRCode(printInfo.Sno);
Rectangle destRect = new Rectangle(-12, 15 + height, image.Width, image.Height);
g.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
}
public static void GetPicture(PrintInfo printInfo, Graphics g)
{
int height = 5;
Font font = new Font("宋体", 10f);
Brush brush = new SolidBrush(Color.Black);
g.SmoothingMode = SmoothingMode.HighQuality;
int pointX = 5;
height += 8;
RectangleF layoutRectangle = new RectangleF(pointX, height, 230f, 85f);
g.DrawString(printInfo.Context, font, brush, layoutRectangle);
var image = CreateQRCode(printInfo.Sno);
Rectangle destRect = new Rectangle(-12, 15 + height, image.Width, image.Height);
g.DrawImage(image, destRect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
}
public class PrintInfo
{
/// <summary>
/// 文本框信息
/// </summary>
public string Context { get; set; }
/// <summary>
/// 新增的码
/// </summary>
public string Sno { get; set; } = "0000000000000000000000000400120202104131100000000000000000000000";
}
}
}
//二次绘图时候会与首次图片重叠
例如:
var drawer = pictureBox1.CreateGraphics();
//将颜色设置为white即可
drawer.Clear(Color.White);