[英]how to set to default printer
如何将PrintDocument.PrinterSettings.PrinterName
设置为默认打印机?
我不是在谈论在操作系统中设置默认打印机。 相反,我说的是设置PrintDocument对象,以便它打印到默认打印机。
如果我理解正确,您希望能够将PrinterName重置为默认打印机(1)而无需重新创建PrintDocument , (2)您可能已经将其设置为其他内容, 或者 (3)当自PrintDocument首次创建以来,默认打印机可能已更改 (因此您不能依赖于在初始构建后简单地缓存目标实例提供的默认值) 。
在这种情况下,搜索“ C#get default printer name ”会在stackoverflow上发布以下优秀文章: 在.NET中获取默认打印机的最佳方法是什么
建立在最高投票答案中提供的样本,并考虑到您已经有一个预先存在的PrintDocument
,其中包含一些您不想重新创建的设置; 您可以创建PrinterSettings
类的新实例,仅用于复制默认打印机名称。
// Create a new instance of the PrinterSettings class, which
// we will only use to fetch the default printer name
System.Drawing.Printing.PrinterSettings newSettings = new System.Drawing.Printing.PrinterSettings();
// Copy the default printer name from our newSettings instance into our
// pre-existing PrintDocument instance without recreating the
// PrintDocument or the PrintDocument's PrinterSettings classes.
existingPrintDocumentInstance.PrinterSettings.PrinterName = newSettings.PrinterName;
您可以查看链接帖子以了解WMI等替代技术,但我认为这是最简单,最干净的解决方案。
它会自动初始化为默认打印机。 没做什么。
GetDefaultPrinter()
{ PrinterSettings settings = new PrinterSettings();
foreach (string printer in PrinterSettings.InstalledPrinters)
{ settings.PrinterName = printer;
if (settings.IsDefaultPrinter)
return printer;
}
return string.Empty;
}
我假设您已在操作系统级别设置默认打印机。 当您从代码中启动打印时,它将通过默认打印机进入默认打印机。 您不必明确设置它。
这发生在每个打印请求中。 我的意思是,如果您已将打印设置为另一台打印机,现在您想要转到默认打印机,只需删除显式设置,它将再次转到默认打印机。
HTH
如果我错了,请纠正我,但是您希望获取默认打印机的名称,然后将PrintDocument.PrinterSettings.PrinterName
设置为此。
使用PrintDocument.PrinterSettings.PrinterName
,默认情况下使用默认打印机。
默认情况下,如果未在对象上设置任何内容,则将登陆默认打印机。 以下是您正在寻找的官方来源: MSDN链接到PrintDocument类
标记在示例上方写的句子:“以下代码示例在默认打印机上打印名为C:\\ My Documents \\ MyFile.txt的文件。”
HTH
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.