我终于想通了如何打印转换后的 XML https://stackoverflow.com/questions/707518/printing-transformed-xml不提示用户或显示 IE 窗口,但现在我需要指定份数以及可能的其他打印机设置。
有没有办法以编程方式更改 WebBrowser 控件上的打印机设置?
有问题的代码:
private static void PrintReport(string reportFilename)
{
WebBrowser browser = new WebBrowser();
browser.DocumentCompleted += browser_DocumentCompleted;
browser.Navigate(reportFilename);
}
private static void browser_DocumentCompleted
(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser browser = sender as WebBrowser;
if (null == browser)
{
return;
}
browser.Print();
browser.Dispose();
}
我成功的唯一方法是动态修改注册表(并将它们改回不影响其他任何内容)。
您可以在 CurrentUser 下的“Software\Microsoft\Internet Explorer\PageSetup”中找到所需的设置。
要更改打印机,您可以使用以下命令:
using System.Management
public static bool SetDefaultPrinter(string defaultPrinter)
{
using (ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"))
{
using (ManagementObjectCollection objectCollection = objectSearcher.Get())
{
foreach (ManagementObject mo in objectCollection)
{
if (string.Compare(mo["Name"].ToString(), defaultPrinter, true) == 0)
{
mo.InvokeMethod("SetDefaultPrinter", null, null);
return true;
}
}
}
}
return false;
}
至于份数,您始终可以将 WebBrowser.Print 放在 while 循环中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)