Как диалоговое окно печати выбрало принтер для процесса печати

Я пытаюсь распечатать PDF-файл с помощью Process

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 на принтере по умолчанию. в чем будет вина? Спасибо.


person RiksonTool    schedule 28.10.2016    source источник


Ответы (1)


@RiksonTool,

Ваш код печатает в pdf принтер по умолчанию, поскольку он считывает настройки с панели управления Windows. Это не ошибка, это проявление настроек по умолчанию в windows.

Надеюсь, это поможет

person Hamza Ahmed Zia    schedule 05.06.2017