我想调用特定的打印机以在我的WPF应用程序中打印。我有三台打印机认为Bar Bill打印机1打印机2用于厨房帐单打印打印机3用于访客账单打印打印机名称已经保存在数据库中,在打印时,我从数据库中获得了打印机名称并想从特定打印机打印,而不是Defaul打印机这是我的代码
var v = new PrinterDAL().GetPrinterSettings();
try
{
System.Threading.Thread thread = new System.Threading.Thread(new
System.Threading.ThreadStart(
delegate()
{
gridPrint.Dispatcher.Invoke(DispatcherPriority.Normal,
new Action(
delegate()
{
PrintDialog printDialog = new PrintDialog();
printDialog.PrintQueue = new PrintQueue(
new PrintServer(@"\" + v.BarPrinter), "");
printDialog.PrintVisual(gridPrint, "");
this.Close();
}
));
}
));
thread.Start();
}
catch (Exception ex)
{
Xceed.Wpf.Toolkit.MessageBox.Show(ex.Message, "", MessageBoxButton.OK,
MessageBoxImage.Error);
}
我从此代码中得到例外
"创建PrintServer对象时发生了异常。Win32错误:打印机名称无效。"
printServer必须使用UNC格式(\resource
)的计算机或打印机设备实例,而不是打印机名称:
例如,如果您的计算机名称(在您的域中)是kashifpc,并且您已经配置了一个称为"打印机1"的打印机,则可以使用:
//example code. no error handling.
PrintServer localPS = New PrintServer(@"\KashifPC")
PrinterQueue printer1 = localPS.GetPrintQueue("Printer1") //v.BarPrinter???
PrintDialog printDialog = new PrintDialog();
printDialog.PrintQueue = printer1
//rest of code