Как я могу отправить файл документа на принтер и распечатать его? - PullRequest
60 голосов
/ 24 мая 2011

Вот основная посылка:

Мой пользователь нажимает некоторые вещицы, и файл PDF выплевывается на его рабочий стол. Можно ли как-нибудь отправить этот файл в очередь принтера и распечатать его на локально подключенном принтере?

string filePath = "filepathisalreadysethere";
SendToPrinter(filePath); //Something like this?

Он будет делать этот процесс много раз. Для каждого ученика в классе он должен распечатать небольшую табель успеваемости. Поэтому я создаю PDF для каждого учащегося и хотел бы автоматизировать процесс печати вместо того, чтобы пользователь генерировал PDF, печатал, генерировал PDF, печатал, генерировал PDF, печатал.

Есть предложения, как к этому подойти? Я работаю на Windows XP с Windows Forms .NET 4.

Я нашел этот StackOverflow вопрос, где принятый ответ предполагает:

Как только вы создали свои файлы, вы можете распечатать их через командную строку (вы можно с помощью класса Command, найденного в пространство имен System.Diagnostics для что)

Как бы мне этого добиться?

Ответы [ 11 ]

0 голосов
/ 06 сентября 2018

Вы можете использовать DevExpress PdfDocumentProcessor.Print (PdfPrinterSettings) Метод.

public void Print(string pdfFilePath)
{
      if (!File.Exists(pdfFilePath))
          throw new FileNotFoundException("No such file exists!", pdfFilePath);

      // Create a Pdf Document Processor instance and load a PDF into it.
      PdfDocumentProcessor documentProcessor = new PdfDocumentProcessor();
      documentProcessor.LoadDocument(pdfFilePath);

      if (documentProcessor != null)
      {
          PrinterSettings settings = new PrinterSettings();

          //var paperSizes = settings.PaperSizes.Cast<PaperSize>().ToList();
          //PaperSize sizeCustom = paperSizes.FirstOrDefault<PaperSize>(size => size.Kind == PaperKind.Custom); // finding paper size

          settings.DefaultPageSettings.PaperSize = new PaperSize("Label", 400, 600);

          // Print pdf
          documentProcessor.Print(settings);
      }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...