我需要显示安装在网络中的打印机。我使用下面的代码显示打印机,但在本地它显示网络打印机,但在IIS中托管时它不显示网络打印机。(仅显示本地打印机)。
代码-1:
ApplicationPrinter printer = new ApplicationPrinter();
ddlPrinters.DataSource = printer.InstalledPrinters();
ddlPrinters.DataBind();
ddlPrinters.SelectedItem.Text = printer.DefaultZebraPrinter();
代码-2:
ddlPrinters.Items.Clear();
try
{
// Use the ObjectQuery to get the list of configured printers
ObjectQuery oquery =
new ObjectQuery("SELECT * FROM Win32_Printer");
ManagementObjectSearcher mosearcher =
new ManagementObjectSearcher(oquery);
ManagementObjectCollection moc = mosearcher.Get();
foreach (ManagementObject mo in moc)
{
PropertyDataCollection pdc = mo.Properties;
foreach (PropertyData pd in pdc)
{
if ((bool)mo["Network"])
{
ddlPrinters.Items.Add(mo["Name"].ToString());
break;
}
}
}
}
catch (ManagementException ex)
{
string msgDesc = string.Empty;
string script = string.Empty;
msgDesc = ex.Message;
script = "<script language=\"javascript\">alert('" + msgDesc + "'); </script>";
ScriptManager.RegisterStartupScript(this.Page, typeof(Page), "UserMessage", script, false);
}
如果((bool)mo [“Network”])用于仅显示网络打印机。
有没有办法在ASP.NET中使用网络打印机?
答案 0 :(得分:2)
将此行添加到web.config的部分可以解决问题。提供的用户标识需要映射网络打印机。
<identity impersonate="true" userName="domain\user" password="password" />
答案 1 :(得分:0)
您是否尝试首先在工作站上安装网络打印机,然后执行win32_printer查询?
P.S。你可以通过\\ printername
安装它