Как из консольного приложения или приложения WinForms отправить что-либо на принтер?
Ответ
Минимально необходимо для печати:
using System.Drawing.Printing;
using System.Drawing;
void Print()
{
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += PrintPageHandler;
printDoc.Print();
}
void PrintPageHandler(object sender, PrintPageEventArgs e)
{
//Замените на e.Graphics.DrawImage или любую другую логику
e.Graphics.DrawString("Привет", new Font("Arial", 14), Brushes.Black, 0, 0);
}
при этом печать будет на дефолтном принтере. PrintDialog позволяет выбрать принтер и настроить некоторые параметры PrintDocument через диалоговое окно, но за печать отвечает именно PrintDocument
Расширим пример для использования PrintDialog
PrintDocument printDoc = new PrintDocument();
printDoc.PrintPage += PrintPageHandler;
PrintDialog printDialog = new PrintDialog();
printDialog.Document = printDoc;
if (printDialog.ShowDialog() == DialogResult.OK) printDialog.Document.Print();
Убираем всплывающие окошки, если в них нет необходимости:
printDoc.PrintController = new StandardPrintController();
По аналогии с добавлением PrintDialog, можно добавить PageSetupDialog и PrintPreviewDialog последовательно передавая им объект PrintDocument
Комментариев нет:
Отправить комментарий