打印对话框如何选择打印机进行打印过程

时间:2016-10-28 04:33:25

标签: c# printing process processstartinfo printdialog

我正在尝试使用Process

打印PDF文件
PrintDialog pdf = new PrintDialog();
if (pdf.ShowDialog() == DialogResult.OK)
{
  pdf.AllowSelection = true;
  pdf.AllowSomePages = true;
  ProcessStartInfo info = new ProcessStartInfo();
  info.Arguments = pdf.PrinterSettings.PrinterName;
  info.CreateNoWindow = true;
  info.Verb = "print";
  info.FileName = filename;
  //info.WindowStyle = ProcessWindowStyle.Hidden;
  try
  {
    Process p = new Process();
    p.StartInfo = info;
    p.EnableRaisingEvents = true; //Important line of code
    //p.PriorityBoostEnabled = true;
    p.Start();
    p.WaitForExit();
    p.Close();
  }
  catch (Exception ex){}
}
else
{
  MessageBox.Show("Print Canceled");
}
}
catch (Exception ex){}

但是此代码不会将用户选择的打印机用于打印过程。它默认打印机打印pdf。 那会是什么错? 谢谢。

1 个答案:

答案 0 :(得分:0)

@RiksonTool,

您的代码默认打印到pdf,因为它正在从Windows控制面板中读取设置。 这不是错误,它是Windows中默认设置的一种表现形式。

希望有所帮助