2013-06-21 126 views
0

因此,我有下面的代码,当对话框打开时,它显示打印机设置已更改为双面打印,但当我单击确定并打印时,它不会打印双面,但是当我手动选择双它确实打印正确。任何想法可能是这种情况?在此先感谢您的帮助。 ASP.NET WEB应用程序更改打印机设置

  using (PrintDialog pd = new PrintDialog()) 
      { 

       PrinterSettings ps = new PrinterSettings(); 
       ps.Duplex = Duplex.Horizontal; 
       pd.PrinterSettings = ps; 
       // pd.UseEXDialog = true; 



       if (pd.ShowDialog() == DialogResult.OK) 
       { 
        ProcessStartInfo info = new ProcessStartInfo(filePath); 
        info.Verb = "Print"; 
        info.CreateNoWindow = true; 
        info.WindowStyle = ProcessWindowStyle.Hidden; 
        Process.Start(info); 
       } 





      } 
+0

只是为了确认它是一个Web应用程序。如果这是一个Web应用程序,我不确定您是否可以设置打印机设置。因为你的代码在服务器上运行,但客户端系统在其他地方。因此覆盖客户端偏好可能是不可能的。但我不确定这一点。可能有某种方法。 – Narendra

回答

0

您可以检查PrinterSettings.CanDuplex属性。只需设置

PrinterSettings settings = new PrinterSettings(); 

并检查您的打印机是否支持它。

  • 此属性获取一个值,指示打印机是否支持双面打印。
  • 如果打印机支持双面打印,则返回true;否则,false

你可以简单地做这样的:

 PrintDialog pd = new PrintDialog(); 
     PrintDocument MyPrintDocument = new PrintDocument(); 
     MyPrintDocument.PrintPage += new PrintPageEventHandler(PrintPageEvent); 
     pd.PrinterSettings.PrintRange = PrintRange.AllPages; 
     MyPrintDocument.PrinterSettings.PrintRange = PrintRange.AllPages; 
     MyPrintDocument.Print(); 

其中PrintPageEvent是触发Print()的事件;

+0

PrinterSettings.canDuplex是只读的,我相信 – dansasu11

+0

@paabobo哦,是啊.. –