如何将PrintDocument.PrinterSettings.PrinterName
设置为默认打印机?
我不是在谈论在操作系统中设置默认打印机。相反,我正在谈论设置PrintDocument对象,以便它打印到默认打印机。
答案 0 :(得分:10)
如果我理解正确,您希望能够将PrinterName重置为默认打印机(1),而无需重新创建PrintDocument , (2)您可能已将其设置为其他内容 或 (3)当默认打印机自首次创建PrintDocument以来可能已更改 (因此您不能依赖于在初始构建后简单地缓存目标实例提供的默认值)。
在这种情况下,搜索“ C#get default printer name ”会在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等替代技术的链接帖子,但我认为这是最简单,最干净的解决方案。
答案 1 :(得分:5)
它会自动初始化为默认打印机。什么都不做。
答案 2 :(得分:2)
GetDefaultPrinter()
{ PrinterSettings settings = new PrinterSettings();
foreach (string printer in PrinterSettings.InstalledPrinters)
{ settings.PrinterName = printer;
if (settings.IsDefaultPrinter)
return printer;
}
return string.Empty;
}
答案 3 :(得分:0)
我假设您已在操作系统级别设置默认打印机。当您从代码中启动打印时,它将通过默认打印机进入默认打印机。您不必明确设置它。
每次打印请求都会发生这种情况。我的意思是,如果您已将打印设置为另一台打印机,现在您想要转到默认打印机,只需删除显式设置,它将再次转到默认打印机。
HTH
答案 4 :(得分:0)
如果我错了,请更正我,但是您希望获取默认打印机的名称,然后将PrintDocument.PrinterSettings.PrinterName
设置为此。
使用PrintDocument.PrinterSettings.PrinterName
时,默认使用默认打印机。
答案 5 :(得分:0)
默认情况下,如果未在对象上设置任何内容,则将登陆默认打印机。以下是您正在寻找的官方来源:MSDN Link to PrintDocument Class
标记示例上方的句子:“以下代码示例在默认打印机上打印名为C:\ My Documents \ MyFile.txt的文件。”
HTH