2015-03-15 3 views
0

Я создаю pdf-файлы в проекте asp.net, который хранится на сервере в папке. Когда пользователь хочет распечатать этот файл, мне нужно указать, какой принтер среди всех принтеров этикеток в сети, так как он может содержать числовые лазерные принтеры. Я попытался создать процесс печати, но это отправить файл PDF прямо на принтер по умолчанию. есть ли способ отобразить диалоговое окно печати, чтобы пользователи могли выбрать нужный принтер?Печать различных файлов PDF с диалогом печати, видимым с asp.net

  printjob.StartInfo.FileName = pdfFileName;<br/> 
      printjob.StartInfo.Verb = "Print";<br/> 
      printjob.StartInfo.CreateNoWindow = false;<br/> 
      printjob.StartInfo.WindowStyle =   System.Diagnostics.ProcessWindowStyle.Normal; 
      PrinterSettings setting = new PrinterSettings();<br/> 
      printjob.Start(); 

ответ

1

Это может быть достигнуто путем Spire.pdf.dll ссылки. Чтобы установить эту консоль открытого диспетчера пакетов и введите Install-Package Spire.pdf. это установит spire.pdf. Теперь следующий код поможет вам распечатать pdf-файлы.

 PdfDocument doc = new PdfDocument(); 
     doc.LoadFromFile("D:\\sample.pdf"); 

     //Use the default printer to print all the pages 
     //doc.PrintDocument.Print(); 

     //Set the printer and select the pages you want to print 

     PrintDialog dialogPrint = new PrintDialog(); 
     dialogPrint.AllowPrintToFile = true; 
     dialogPrint.AllowSomePages = true; 
     dialogPrint.PrinterSettings.MinimumPage = 1; 
     dialogPrint.PrinterSettings.MaximumPage = doc.Pages.Count; 
     dialogPrint.PrinterSettings.FromPage = 1; 
     dialogPrint.PrinterSettings.ToPage = doc.Pages.Count; 

     if (dialogPrint.ShowDialog() == DialogResult.OK) 
     { 
      doc.PrintFromPage = dialogPrint.PrinterSettings.FromPage; 
      doc.PrintToPage = dialogPrint.PrinterSettings.ToPage; 
      doc.PrinterName = dialogPrint.PrinterSettings.PrinterName; 

      PrintDocument printDoc = doc.PrintDocument; 
      dialogPrint.Document = printDoc; 
      printDoc.Print(); 
     } 
Смежные вопросы