使用带有Excel对象的打印对话框,仅在选择对话框时才会打印到默认打印机

时间:2018-03-01 19:15:53

标签: excel vb.net printing printdialog

我为工作部门制作了一个快速应用程序,它将用户输入文本字段并将其写入excel对象。该项目的挑战是它需要创建工作表,写入,打印,清除某些机密信息,然后保存,(必须在保存前打印)。一切都很好,除了当我使用打印对话框选择要将其发送到哪个打印机时,它只会打印到用户的默认打印机或最后使用的打印机。我不想更改他们的默认打印机,因为这会混淆他们并导致我们拥有的其他软件的混乱,这对于它的打印位置非常特别。我在网上不知疲倦地搜索,只找到解决方案,如果我打印word文档而不是工作表对象。

我相信这是所有相关的代码:

Imports Excel = Microsoft.Office.Interop.Excel
Dim objExcel As New Excel.Application 
Dim objWorkbook As Excel.Workbook     
Dim objWorksheet As Excel.Worksheet   

Dim PrintDialog1 As New PrintDialog()
Dim result As DialogResult = PrintDialog1.ShowDialog()

    If result = DialogResult.OK Then
        PrintDialog1.PrinterSettings = PrintDocument1.PrinterSettings
        objWorksheet.PrintOutEx()
        MessageBox.Show(PrintDialog1.PrinterSettings.PrinterName)
        MsgBox("Order Printing Completed")
    ElseIf result = DialogResult.Cancel Then
        objExcel.DisplayAlerts = False
        objWorkbook.Saved = True
        objWorkbook.Close(False)
        objExcel.Quit()

       System.Runtime.InteropServices.Marshal.ReleaseComObject(objWorksheet)
       System.Runtime.InteropServices.Marshal.ReleaseComObject(objWorkbook)
       System.Runtime.InteropServices.Marshal.ReleaseComObject(objExcel)
       ProgressBar1.Value = 200
       ProgressBar1.Visible = False
        Exit Sub
    End If

还有关于Exchange的第一个问题,所以我没有很多权限,(也许不会立即回复评论,直到允许),也是新编码一般,这个网站比MLA问答协议,所以要善良。

0 个答案:

没有答案