【发布时间】:2014-11-27 10:03:19
【问题描述】:
您好,我正在使用 vb.net 打印表单上的多个盒子标签副本
份数取决于作业中的盒子数量,范围为 1 到 500 份。 我想打印这些,但如果需要,还打印一个选择的框号。 任何人都可以帮忙,因为我所有的尝试都失败了。
问题是它捕获了屏幕,包括当前正在打印或完成的内容的 msgbox,并将它们全部称为文档 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:\Users\Joseph\Desktop\test '" & 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
【问题讨论】:
标签: vb.net winforms loops printing