繁体   English   中英

如何设置为默认打印机

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM