2013-02-01 22 views
0

打印副本号码例如,我有一个标签要打印,如下面的示例,现在如果我想打印3份副本,如何打印副本号码在我打印的标签中的某处?如何使用system.drawing.printing.printdocument vb.net

示例代码:

Private Sub btnPrintProcLabel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrintProcLabel.Click 
     If ValidateData() Then 
      AddHandler PrintDocument1.PrintPage, AddressOf PrintProcLabel 

      Try 
       PrintDocument1.PrinterSettings.PrinterName = SinglePrinter.PrinterSettings.PrinterName 
       PrintDocument1.PrinterSettings.Copies = CInt(txtCopies.Text) 
       PrintDocument1.Print() 
      Catch ex As Exception 
       MsgBox(ex.Message) 
      End Try 
     End If 
    End Sub 

Public Sub PrintProcLabel(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) 
     Dim g As Graphics = e.Graphics 
     Dim br As Brush = New SolidBrush(Color.Black) 
     Dim pn As Pen = New Pen(br) 

     g.DrawString(Today.Month & "/" & Today.Day & "/" & Today.Year, Arial, br, 250, 3) 

End Sub 

回答

1
PrintDocument1.PrinterSettings.Copies = CInt(txtCopies.Text) 

这告诉打印机驱动程序生成的副本,他们都将是相同的。如果你想给它们编号,那么你需要自己创建“拷贝”。他们不再是真正的副本,因为他们都会有所不同。只需使用PrintPage事件处理函数中的DrawString()值的计数器重复调用Print()方法即可。

+0

是的,我想迭代的次数与'txtCopies.Text'中指定的次数一样多,所以我可以每次都有特定的拷贝数。我认为没有其他办法可以做到这一点。 – Somebody