【问题标题】:Printing vb.net forms with a loop使用循环打印 vb.net 表单
【发布时间】: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


    【解决方案1】:

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

     PrintForm1.Print()
    

    有关详细信息,请参阅此MSDN tutorial

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-15
      相关资源
      最近更新 更多