我无法从Asp.NET网络服务中将活动打印机更改为Excel中的特定打印机。该服务在LocalSystem帐户下运行。 如果我调用一个显示打印机列表的函数:
System.Drawing.Printing.PrinterSettings.InstalledPrinters
我获得了系统打印机中安装的列表:
" Microsoft打印到PDF"
" Microsoft XPS Document Writer"
" HP Universal Printing PCL 6"
但如果我调用函数
excelApplication.ActivePrinter
它返回 -
未知打印机
当我尝试从此c# setting a printer设置打印机时:
excelApplication.ActivePrinter = "Microsoft XPS Document Writer"
或(我在注册配置单元中找到了端口 HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Devices )
excelApplication.ActivePrinter = "Microsoft XPS Document Writer on Ne00:"
没关系,我得到了异常0x800A03EC。
最后,我还尝试更改系统中的默认打印机:
[DllImport("winspool.drv",
CharSet = CharSet.Auto,
SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern Boolean SetDefaultPrinter(String name);
工作正常,系统中的默认打印机已更改。但在Excel仍然是"未知的打印机"
此外,如果我在我的帐户下打开Excel,在打印设置中我可以看到默认打印机