0

我正在尝试打印 Windows 窗体。当表单最大化时,图像会在页面上运行。我可以在打印之前使用 Me.WindowState = FormWindowState.Normal,但我知道这不是最好的方法。由于用户可以更改表单大小,有没有更好的方法来“适应页面”?

Private Sub PrintToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles PrintToolStripMenuItem.Click
    Dim ppd As PrintPreviewDialog = New PrintPreviewDialog()

    ppd.Document = New Printing.PrintDocument()

    AddHandler ppd.Document.PrintPage, AddressOf Document_PrintPage
    ppd.Document.DefaultPageSettings.Landscape = True

    ppd.ShowDialog()
End Sub
Private Sub Document_PrintPage(ByVal sender As Object, ByVal e As Printing.PrintPageEventArgs)

    Dim bt As Bitmap = New Bitmap(Me.Width, Me.Height)

    Me.DrawToBitmap(bt, New Rectangle(0, 0, Me.Width, Me.Height))

    e.Graphics.DrawImage(bt, 0, 0)
        End Sub
4

1 回答 1

0

如果有人遇到同样的问题,这似乎效果更好。

e.Graphics.DrawImage(bt, 0, 0, e.PageBounds.Width, e.PageBounds.Height)
于 2013-09-10T20:04:38.857 回答