从Windows 2000开始,Windows操作系统内建了WMI管理对象。通过它,我们可以获取系统中各个组件的情况。对于打印机也一样,查询WMI的Win32_Printer对象即可获取到打印机相关的状态信息,请看如下的示例代码:
//---------------------------------------------------------
string searchQuery = "SELECT * FROM Win32_Printer";
ManagementObjectSearcher searchPrinters =
new ManagementObjectSearcher(searchQuery);
ManagementObjectCollection printerCollection = searchPrinters.Get();
ManagementObject currentPrinter = null;
foreach(ManagementObject printer in printerCollection)
{
Console.WriteLine( printer.Properties["PrinterStatus"].Value.ToString() );
}
1 如何通过代码在“打印服务器 属性”窗口中添加新的纸张格式?
2 如何通过代码在某一(票据)打印机的“属性”->“打印首选项”->“高级”对话框中,设置“纸张规格”为新添加的纸张格式?
PaperSize pkCustomSize = new PaperSize("First custom size",(int)(82.55*100/25.4+1),(int)(184.0*100/25.4+1));
this.printDocument1.DefaultPageSettings.PaperSize = pkCustomSize;
this.printDocument1.DefaultPageSettings.Margins.Top = 0;
this.printDocument1.DefaultPageSettings.Margins.Left =0;
this.printDocument1.DefaultPageSettings.Margins.Bottom = 0;
this.printDocument1.DefaultPageSettings.Margins.Right = 0;