C# 打印机使用PrintDialog、PrintTicket、PrintQueue

获取本地打印机

获取本地打印机方式有好几种,这里主要列举两种方式。

// 第一种
List<string> PrinterList = new List<string>();
var printers = PrinterSettings.InstalledPrinters;

foreach (var c in printers)
{
    PrinterList.Add(c.ToString());
}

//第二种
LocalPrintServer printServer = new LocalPrintServer();
PrintQueueCollection printQueuesOnLocalServer = printServer.GetPrintQueues(new[] { EnumeratedPrintQueueTypes.Local });
foreach (PrintQueue printe in printQueuesOnLocalServer)
{
    PrinterList.Add(printe.Name);
}

获取打印机的队列,进行打印机设置

PrintDialog printDialog = new PrintDialog();
初始化一个PrintDialog对象,里面包含了PrintQueue、PrintTicket
printDialog.PrintQueue = printQueuesOnLocalServer.First();
获取PrintQueue
printDialog.PrintTicket.PageMediaSize = new PageMediaSize(PageMediaSizeName.ISOA4);
设置纸张大小,PageMediaSizeName是一个枚举值。
printDialog.PrintTicket.PageOrientation = PageOrientation.Portrait;
设置纸张方向,垂直打印还是水平打印
printDialog.PrintVisual(Grid,"Print");
打印一个Grid控件
printDialog.PrintDocument(docp, "print");
打印一个流文档
printDialog.ShowDialog();
展示一个打印设置对话框

猜你喜欢

转载自blog.csdn.net/yirol_/article/details/82154093