VB.Net将表单打印到PDF打印机
我正在尝试(但失败)在VB.Net中将Windows窗体打印为PDF文件 现在,通过一些研究,我知道VB.Net没有任何内置函数,不需要使用第三方应用程序就可以实现这一点 我解决这个问题的方法是尝试使用PDF打印机打印我的表单,因为从逻辑上讲,这应该不起作用?我的问题是让它正常工作 这是我当前尝试打印的代码:VB.Net将表单打印到PDF打印机,vb.net,pdf,printing,Vb.net,Pdf,Printing,我正在尝试(但失败)在VB.Net中将Windows窗体打印为PDF文件 现在,通过一些研究,我知道VB.Net没有任何内置函数,不需要使用第三方应用程序就可以实现这一点 我解决这个问题的方法是尝试使用PDF打印机打印我的表单,因为从逻辑上讲,这应该不起作用?我的问题是让它正常工作 这是我当前尝试打印的代码: Private Sub SelectPrinterThenPrint() Dim PrintersDialog As New PrintDialog() If Printe
Private Sub SelectPrinterThenPrint()
Dim PrintersDialog As New PrintDialog()
If PrintersDialog.SHowDialog(Me) = System.Forms.DialogResult.OK Then
Try
p_Document = New PrintDocument()
PrintersDialog.Document = p_Document
AddHandler p_Document.PrintPage, AddressOf HandleOnPrintPage
Catch ex As Exception
End Try
End If
End Sub
Private Sub HandleOnPrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs) Handles p_Document.PrintPage
Dim MorePagesPending = False
Dim bmp As New Bitmap(pnlContainer.Width, pnlContainer.Height)
pnlContainer.DrawToBitmap(bmp, pnlContainer.ClientRectangle)
e.Graphics.DrawImage(bmp, New Point(0,0))
If MorePagesPending Then
e.HasMorePages = True
Else
e.HasMorePages = False
End If
End Sub
单击表单上的按钮时,将调用SelectPrinterThenPrint()
方法。现在我有两个问题
1) 我不知道如何设置文件保存的位置。打印对话框打开,我可以选择我的PDF打印机,但它不允许我设置文件名。那么如何设置要打印的文件名呢
2) 因为我不知道文件是否真的被保存了,我也不知道我是否真的正确设置了打印。我试图打印一个面板的全部内容,其中包含我想要的PDF文件中的所有元素。但是,我不确定的一点是,面板的显示形式与面板的大小不同。面板所在的窗体具有相同的宽度,但高度不同,窗体设置为自动滚动。我能把整个面板打印出来吗?或者只是打印时表单中可见的部分?您忘记了在以下行后面的p_Document.Print():AddHandler p_Document.PrintPage,AddressOf handleon PrintPage。还将PrintDialog.AllowPrintToFile设置为True。我相信这是默认设置,但无论如何都要这样做。@γηράσκωδαεπλλδδδδσκμε谢谢,我自己刚刚意识到这一点。天哪,我有时觉得自己很笨。