写在前面
今天的主题就是用Zebra斑马打印机打印一个贺卡标签。
Zebra介绍
既然是贺卡,应该是非常漂亮的,但是这个Zebra打印机好像只能打印黑白的,所以就简单制作了一下。
工业上在批量打印商品标签时,一般都要加上条码或图片,一般使用Zebra斑马打印机比较多。而C#调用斑马打印机的方式也有很多种,包括串口COM、以太网TCP、并口LPT以及USB等,对于设计标签的方式也有很多种方式,比如Zebra提供了一个设计软件Zebra Designer,还可以使用第三方软件如Bartender,当然我们还可以自己通过GDI+技术进行绘制。
本例采用的方式是利用GDI+进行绘制,然后将图像转换成字节,通过DG和XG指令发送给打印机,通信使用的是打印机自带的USB接口。
图像绘制
首先通过GDI+绘制一张图像,图像的大小要根据实际标签大小进行调试,绘制内容可以是图像、字符串等,或者是条形码、二维码都可以,其实条形码及二维码也是属于图像。
private void btn_Paint_Click(object sender, EventArgs e)
{
//开始绘制图片
int imageWidth = 900;
int imageHeight = 600;
bitmap = new Bitmap(imageWidth, imageHeight);
//创建Graphics
Graphics graphics = Graphics.FromImage(bitmap);
//呈现质量
graphics.SmoothingMode = SmoothingMode.AntiAlias;
//背景色
graphics.Clear(Color.White);
//字体
Font myFont = new Font("楷体", 32, FontStyle.Bold);
//文字颜色
Brush brush = new SolidBrush(Color.Black);
//调整间距
int start = 145;
int gap = 80;
graphics.DrawString("祝全天下的母亲——母亲节快乐", myFont, brush, 50, 50);
graphics.DrawString("《游子吟》【唐】孟郊", myFont, brush, 50, start);
graphics.DrawString("慈母手中线,游子身上衣", myFont, brush, 50, start + gap);
graphics.DrawString("临行密密缝,意恐迟迟归", myFont, brush, 50, start + gap * 2);
graphics.DrawString("谁言寸草心,报得三春晖", myFont, brush, 50, start + gap * 3);
graphics.DrawString("署名:" + this.txt_Name.Text.Trim(),