VB2010 打印条码标签方法二
最近有个案子要用到条码标签打印,以前都是用vb与codesoft软件连携完成,条码打印样式的设定都是在codesoft软件中完成,自制软件这边只是将变量值传递给codesoft,然后控制codesoft的打印。
这种方法有优缺点,
优点:
①如果打印样式比较复杂(有图片,文字,各种条码格式等)的时候,确实很方便,都是可以在codesoft中作成。
②如果打印打印样式要变更时,使用者可以根据自己的需要进行变更,只要传递变量名及文件名不变更就可。
缺点:
①设置纸型比较麻烦,首先要在设备和打印机中对标签打印机创建纸型,这个下记的方法也是需要设置的,但是还相对简单,只要长,宽就可。
但是用codesoft的话,在codesoft中首先要选择打印机,选择创建的纸型,以及纸型设置,这个对于没有使用过codesoft的人来说,确实很麻烦。
有时候,换卷标签,稍微有点偏的时候,也要在codesoft中调整打印边距等。
但是本次只是简单的一个二维码打印,如果用codesoft就感觉有点杀鸡用牛刀的,后来在网上查了下,如果调用 开源库 DotNetBarcode.dll,可以简单实现此功能。
如果将打印位置设置为变量,使用者也可以根据实际情况进行相应的微调。
下面是一个简单测试实例。
1、创建win 32 窗体应用程序,项目名保存为QRcodePrintDraft
2、在窗体中添加以下控件。
textbox1,button1,PrintDocument1,picturebox1如下图
3、添加 DotNetBarcode.dll引用
项目->添加引用->浏览->找到DotNetBarcode.dll
4、添加代码,如下
Public Class Form1
Dim bc As DotNetBarcode = New DotNetBarcode()
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Refresh()
PrintDocument1.Print()
End Sub
Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint
bc.Type = DotNetBarcode.Types.QRCode
bc.WriteBar(TextBox1.Text, 0, 0, 100, 100, e.Graphics)
bc.PrintChar = True
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim qRCodeBitMap As Bitmap = New Bitmap(68, 68)
Dim qRCodeGraphics As Graphics = Graphics.FromImage(qRCodeBitMap)
bc.WriteBar(TextBox1.Text, 0, 0, 68, 68, qRCodeGraphics)
e.Graphics.DrawImage(qRCodeBitMap, 0, 0)
qRCodeGraphics.Dispose()
End Sub
End Class
5、打开<设备和打印机>选择PDF打印机
这样将打印为PDF格式。(当然如果选择为电脑连接的打印机,将直接通过打印机打印到纸上。
5、编译运行
在textbox1中输入字符后,按一下按钮,结果如下
5-1窗体输出
5-2打印的pdf文档