我在VB.NET WinForms应用程序中有一个WebBrowser控件 . 我能够在不提示用户的情况下从代码和打印设置默认打印机 . 但是,还有一个显示PrintDialog的打印按钮 . 如果首先执行此操作,则将打印页面 . 然后,如果我尝试以后以编程方式打印(再次将默认打印机设置为其他打印机),它将打印到PrintDialog框中选择的最后一台打印机,即使我正在重置默认打印机并看到在Windows中更改默认打印机 .
有任何想法吗?
除非ShowPrintDialog首先选择了打印机,否则它可以正常工作 . 一旦发生这种情况,无论我做什么,似乎总是使用该打印机 .
For Each strPrinter In PrinterSettings.InstalledPrinters
If strPrinter.Contains("My Printer") Then
wScript.SetDefaultPrinter(strPrinter)
End If
Next
browser.Print()
2 回答
我能够使用以下代码,而无需打开/关闭单独的表单 . 自IE6以来我一直在寻找这个......
另见这两篇文章 . Programmatically changing the destination printer for a WinForms WebBrowser control
Print html document from Windows Service without print dialog
我创建了一个没有任何内容的表单 . 启动/关闭此表单的操作使其转到正确的打印机...我不知道为什么这样可行,但必须有一些函数可以被调用来模拟那里发生的任何动作 .