如何设置为默认打印机

时间:2011-03-02 06:53:56

标签: c# printdocument

如何将PrintDocument.PrinterSettings.PrinterName设置为默认打印机?

我不是在谈论在操作系统中设置默认打印机。相反,我正在谈论设置PrintDocument对象,以便它打印到默认打印机。

6 个答案:

答案 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