【发布时间】:2023-03-22 08:04:01
【问题描述】:
目前我正在开发一个桌面应用程序,我需要从本地存储(桌面)打印图像(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
【问题讨论】:
-
您可能想要加载一个 Image 对象并订阅
PrintDocument.PrintPage事件。你应该避免这样的硬编码路径。部署时该文件将不存在。 -
怎么样?我不明白,我是这个语言的新手,对不起:(
-
好吧,如果 How? 与加载图像有关,您可以将
Private streamToPrint As StreamReader更改为Private certificateImage as Image并写为certificateImage = Image.FromStream(new MemoryStream(File.ReadAllBytes([Your Image Path])))。要将处理程序添加到 PrintPage 事件,请按照文档中的示例:PrintDocument.PrintPage,我知道您已经看到了,但部分实现了。在事件处理程序中,使用PrintPageEventArgsGraphics 对象绘制您的位图。
标签: vb.net png printdocument