[c#]代码库
// 此方法利用Code 128字体实现条码打印,所以需要提前安装Code 128字体
//下载地址:http://pan.baidu.com/share/link?shareid=1787017019&uk=2382364834
/// <summary>
/// 获取128条码数据
/// </summary>
private string Get128CodeString(string inputData)
{
string result;
//计算校验位
int checksum = 104;
for (int ii = 0; ii < inputData.Length; ii++)
{
if (inputData[ii] >= 32)
{
checksum += (inputData[ii] - 32) * (ii + 1);
}
else
{
checksum += (inputData[ii] + 64) * (ii + 1);
}
}
checksum = checksum % 103;
if (checksum < 95)
{
checksum += 32;
}
else
{
checksum += 100;
}
//条码由开始位、数据、校验位、停止位组成
result = Convert.ToChar(204) + inputData.ToString() + Convert.ToChar(checksum) + Convert.ToChar(206);
return result;
}
/// <summary>
/// 打印条形码
/// </summary>
public void PrintBarCode()
{
PrintDocument printDoc = new PrintDocument();
StandardPrintController controler = new StandardPrintController();
printDoc.PrintPage += new PrintPageEventHandler(this.PrintCustom);
printDoc.PrintController = controler;
printDoc.Print();
}
/// <summary>
/// 事件:打印设置
/// </summary>
public void PrintCustom(Object Sender, PrintPageEventArgs e)
{
Font ft1 = new System.Drawing.Font("Times New Roman", 18, FontStyle.Regular, GraphicsUnit.World);
Font ft2 = new System.Drawing.Font("Code 128", 64, FontStyle.Regular, GraphicsUnit.World);
Brush br = new SolidBrush(Color.Black);
Margins margins = new Margins(50, 50, 50, 145);
e.PageSettings.Margins = margins;
e.Graphics.DrawString(this.Get128CodeString(m_InputString), ft2, br, 50, -3);
e.Graphics.DrawString(this.m_InputString, ft1, br, 110, 60);
e.HasMorePages = false;
}
by: 发表于:2018-01-24 09:46:15 顶(0) | 踩(0) 回复
??
回复评论