如何在VB.Net中打印Image.png?

时间:2020-06-29 17:32:46

标签: vb.net png printdocument

当前,我正在开发桌面应用程序,我需要从本地存储(桌面)打印图像(png文件)。

很简单,当我按下按钮时,它将发送图像进行打印。看我的功能,它不起作用。 (为证明我在PDF打印机中打印了图像,但是当我打开图像的pdf时,PDF为空)。 我从工具箱中添加了一个PrintDocument1。

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

Public Class Certificate

    Private streamToPrint As StreamReader
    Private ReadOnly pd As New PrintDocument()

    Private Sub PrintCertificateButton_Click(sender As Object, e As EventArgs) Handles PrintCertificateButton.Click

        Try
            streamToPrint = New StreamReader("C:\Users\m.cerna\Desktop\screenshot.png")
            Try
                pd.Print()

            Finally
                streamToPrint.Close()
            End Try
        Catch ex As Exception
            MessageBox.Show("An error has occurred trying to print" & vbCrLf & "Error code: ", ex.Message)
        End Try
    End Sub

End Class

1 个答案:

答案 0 :(得分:0)

我解决了这个问题! 我更改了功能,曾经用过:

AddHandler PrintDocument1.PrintPage,AddressOf Me.PrintImage

我分享了我的新功能:)我在http://vbcity.com/forums/t/25494.aspx

上找到了它
Private Sub PrintCertificateButton_Click(sender As Object, e As EventArgs) Handles PrintCertificateButton.Click

    Try
        AddHandler PrintDocument1.PrintPage, AddressOf Me.PrintImage
        PrintDocument1.Print() 
    Catch ex As Exception 
        MsgBox(ex, MsgBoxStyle.Critical, "Error during Print")
    End Try
End Sub

Private Sub PrintImage(ByVal sender As Object, ByVal ppea As PrintPageEventArgs)
    ppea.Graphics.DrawImage(Image.FromFile("C:\Users\m.cerna\Desktop\screenshot.png"), ppea.Graphics.VisibleClipBounds)
    ppea.HasMorePages = False
End Sub