2013-09-17 4 views
-1

Как открыть диалоговое окно печати в C# с помощью pdfsharp ?? Это мой код для печати документа, но его диалоговое окно открытия не открывается.Открытие диалогового окна с печатью в C#

  Process proc = new Process(); 
      proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      proc.StartInfo.Verb = "print"; 

      //Define location of adobe reader/command line 
      //switches to launch adobe in "print" mode 
      proc.StartInfo.FileName = 
       @"C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe"; 
      proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName); 
      proc.StartInfo.UseShellExecute = false; 
      proc.StartInfo.CreateNoWindow = true; 

      proc.Start(); 
      proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
      if (proc.HasExited == false) 
      { 
       proc.WaitForExit(10000); 
      } 

      proc.EnableRaisingEvents = true; 

      proc.Close(); 
      KillAdobe("AcroRd32"); 
      return true; 
+0

У вас 'pdfFileName' есть пробелы? –

+1

Что происходит - начинается процесс? – Rob

+0

Мне нужно задаться вопросом о «CreateNoWindow» - возможно, попробуйте с ложным. – Derek

ответ

1

дословная от ПО Adobe Reader FAQ ...

AcroRd32.exe/р имя пути - Исполняет Adobe Reader и отображает диалоговое окно Печать коробка.

AcroRd32.exe/t path "printername" "drivername" "portname" - инициирует Adobe Reader и печатает файл, путь которого должен быть полностью указан, при подавлении диалогового окна «Печать».

Если вы хотите распечатать файл без отображения диалогового окна печати, вы должны использовать второй вариант.

+0

спасибо, но я хочу показать диалоговое окно печати. как я могу дать 1-й вариант в своем коде? –

+0

@ VijayP.V Вы используете первый вариант. Поскольку предложенный Derek не устанавливает для createNoWindow значение true, а также удаляет/h, он минимизирует диалог печати. – Naren

+0

спасибо, что он работает для меня, я удалил/h –

0

Я думаю, что вы ищите это.

System.Windows.Controls.PrintDialog dialogue = new System.Windows.Controls.PrintDialog(); 

    DialogResult dr = dialogue.ShowDialog(); 
    if(dr == DialogResult.OK) 
    { 
    // Do something 
    } 

    dialogue.Dispose(); 

или

 PrintDocument pd = new PrintDocument(); 
     pd.PrintPage += new PrintPageEventHandler(PrintPage); 
     PrintDialog pdi = new PrintDialog(); 
     pdi.Document = pd; 
     if (pdi.ShowDialog() == DialogResult.OK) 
     { 
      pd.DocumentName = documentName; 
      pd.Print(); 
     } 
     else 
     { 
      MessageBox.Show("Print Cancelled"); 
     } 

http://www.codeproject.com/Questions/289705/how-to-open-print-dialog-box-in-my-csharp-applicat

Смежные вопросы