打印 vb.net 带有循环的表单



嗨,我正在使用 vb.net 打印表格上的多份盒子标签

这些副本将根据作业中的盒子数量而定,范围从 1 到 500 份不等。我想打印这些,但如果需要,也可以打印一个选择的盒子编号。任何人都可以提供帮助,因为我的所有尝试都失败了。

问题是它捕获屏幕,包括正在打印或完成的当前内容的味精框,并将它们称为所有文档 1。有没有一种简单的方法可以在没有屏幕捕获的情况下进行打印。

这是我目前的代码

Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Printing

Public Class print
    Inherits Form
    Private WithEvents printButton As New Button
    Private WithEvents printDocument1 As New PrintDocument

    Dim memoryImage As Bitmap
    Private Sub CaptureScreen()
        Dim myGraphics As Graphics = Me.CreateGraphics()
        Dim s As Size = Me.Size
        memoryImage = New Bitmap(s.Width, s.Height, myGraphics)
        Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
        memoryGraphics.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, s)
    End Sub
    Private Sub printDocument1_PrintPage(ByVal sender As System.Object, _
       ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles _
       printDocument1.PrintPage
        e.Graphics.DrawImage(memoryImage, 0, 0)
    End Sub
 Private Sub printButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles printButton.Click
Dim numberofboxes As Integer = 3
Dim startbox As Integer = 1
Dim counter As Integer = 1
For index As Integer = startbox To numberofboxes
    CaptureScreen()
    printDocument1.Print()
    lblFirstBoxPrint.Text = counter
    counter = counter + 1
    printDocument1.PrinterSettings.PrintToFile = True
    printDocument1.PrinterSettings.PrintFileName = "C:UsersJosephDesktoptest '" & counter & "'.xps"
    printDocument1.Print()
Next
End Sub
    Public Shared Sub Main()
        Application.Run(New print())
    End Sub
    Private Sub print_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        printButton.Text = "Print Form"
        Me.Controls.Add(printButton)
    End Sub

End Class

如果您希望实际打印屏幕上显示的表单,请考虑内置的 PrintForm 组件。添加组件并设置属性后,打印是一个单行过程。

 PrintForm1.Print()

有关更多详细信息,请参阅此 MSDN 教程。

最新更新