如何设置PrintDocument.PrinterSettings.PrinterName
为默认打印机?
我不是在谈论在操作系统中设置默认打印机。相反,我说的是设置 PrintDocument 对象,以便它打印到默认打印机。
如何设置PrintDocument.PrinterSettings.PrinterName
为默认打印机?
我不是在谈论在操作系统中设置默认打印机。相反,我说的是设置 PrintDocument 对象,以便它打印到默认打印机。
如果我理解正确,您希望能够在不重新创建 PrintDocument 的情况下将 PrinterName 重置为默认打印机 (1), 并且 (2) 在您可能已经将其设置为其他内容之后 ,或者 (3) 当自首次创建 PrintDocument 以来,默认打印机可能已更改 (因此您不能仅依赖于在初始构造后缓存目标实例提供的默认值)。
在这种情况下,搜索“ C# 获取默认打印机名称”会在 stackoverflow 上找到以下出色的帖子:What's the best way to get the default printer in .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;
}
我假设您已经在操作系统级别设置了默认打印机。当您从代码启动打印时,它默认转到默认打印机。您不必明确设置它。
每个打印请求都会发生这种情况。我的意思是,如果您已将打印设置为另一台打印机,现在您想使用默认打印机,只需删除显式设置,它将再次使用默认打印机。
高温高压
如果我错了,请纠正我,但您正在寻找默认打印机的名称,然后设置PrintDocument.PrinterSettings.PrinterName
为此。
当您使用它时PrintDocument.PrinterSettings.PrinterName
,默认使用默认打印机。
默认情况下,如果您未在对象上设置任何内容,您将登陆默认打印机。这是您正在寻找的官方来源:MSDN Link to PrintDocument Class
标记示例上方写的句子:“以下代码示例在默认打印机上打印名为 C:\My Documents\MyFile.txt 的文件。”
高温高压