VB.net Printform无法找到路径

时间:2017-10-16 12:51:40

标签: vb.net printform

所以我正在处理需要打印的表格。我想用Foxit PDF打印机最终得到一个PDF文件。问题是我无法弄清楚如何将选定的路径作为文件位置,所以我不断得到一个路径不能为空。 错误。在使用Printform时我应该在代码中放置文件位置? 在此代码中,foldername是我想要打印的位置。

Private Sub BtnPrint_Click(sender As Object, e As EventArgs) Handles BtnPrint.Click

    Dim folderDlg As New FolderBrowserDialog
    Dim foldername As String
    folderDlg.ShowNewFolderButton = True
    If (folderDlg.ShowDialog() = DialogResult.OK) Then
        foldername = folderDlg.SelectedPath
        Dim root As Environment.SpecialFolder = folderDlg.RootFolder

    End If

    PrintForm1.Print()

End Sub

编辑:

实际上删除了部分代码并仍然得到相同的错误(第一部分没有做任何事情开始我知道)。我现在使用的是:

Private Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles BtnPrint.Click

    PrintForm1.Print()

End Sub

关于Printform的微软帮助数据库也没有帮助,因为我已经完成了它所说的并且仍然得到Path是Null错误

编辑2: 所以我现在正在使用这个代码,它正在运行。

 Private Sub BtnPrint_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles BtnPrint.Click

    PrintDialog1.PrinterSettings = PrintForm1.PrinterSettings
    PrintDialog1.AllowSomePages = True
    If PrintDialog1.ShowDialog = DialogResult.OK Then PrintForm1.PrinterSettings = PrintDialog1.PrinterSettings

    With Me.PrintForm1
        .PrintAction = Printing.PrintAction.PrintToPreview

        Dim MyMargins As New Margins

        With MyMargins
            .Left = 10
            .Right = 10
            .Top = 10
            .Bottom = 10
        End With

        .PrinterSettings.DefaultPageSettings.Margins = MyMargins

        .Print()

    End With

End Sub

但是一旦我尝试设置它应该打印的区域,我就会收到以下错误:"打印不是powerpacks的成员"。我尝试使用以下代码根据microsoft这是应该工作的方式..我不知道错误来自哪里

.Print(Me, PowerPacks.Printing.PrintForm.PrintOption.ClientAreaOnly)  

2 个答案:

答案 0 :(得分:0)

您不需要使用printform的路径。 Printform只是将您在屏幕上看到的内容打印到默认打印机。您需要安装" Visual Basic PowerPacks"使用此命令。您可以在此处找到更多解释: https://docs.microsoft.com/en-us/dotnet/visual-basic/developing-apps/printing/how-to-print-a-form-by-using-the-printform-component

答案 1 :(得分:0)

要预览您的打印件,您不需要使用printdialog等所有这些。您只需单击设计器中的printform1,即可启动printform1的属性窗口。在printaction中,您选择PrintToPreview。这就是它所需要的一切。 以下是我需要的所有内容:

Public Class Form1
Private Sub Exit_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Application.Exit()
End Sub

Private Sub Print_Click(sender As Object, e As EventArgs) Handles Button1.Click
    PrintForm1.Print()
End Sub

结束班