使用 printdialog 打印 PDF 文件 vb.net

Print PDF file with printdialog vb.net

我正在尝试使用 printdialog 选项打印外部 pdf 文件,但该文件是使用预先确定的打印机配置打印的

Dim result As DialogResult = PrintDialog1.ShowDialog()
        If (result = DialogResult.OK) Then
            Dim psi As New ProcessStartInfo
            psi.UseShellExecute = True
            psi.Verb = "print"
            psi.WindowStyle = ProcessWindowStyle.Hidden
            psi.Arguments = PrintDialog1.PrinterSettings.PrinterName.ToString()
            psi.FileName = "file.pdf"
            Process.Start(psi)
        End If

您需要使用“PrintTo”动词而不是“Print”动词。如果其中可能有空格,您还需要将打印机名称用引号引起来。我建议让您的代码更加简洁:

Process.Start(New ProcessStartInfo("file.pdf",
                                   $"""{PrintDialog1.PrinterSettings.PrinterName}""") With {.Verb = "printto",
                                                                                            .UseShellExecute = True,
                                                                                            .WindowStyle = ProcessWindowStyle.Hidden})