0

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

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 的 Microsoft 帮助数据库也没有帮助,因为我已经完全按照它所说的做了并且仍然得到 Path is 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

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

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

2 回答 2

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

结束类

于 2017-10-17T11:40:13.053 回答
0

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

于 2017-10-16T15:32:03.923 回答