VB2010 打印条码标签方法二

来源:互联网 发布:tomcat 多域名绑定 编辑:程序博客网 时间:2024/05/20 04:26

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文档