【发布时间】:2015-07-15 05:04:52
【问题描述】:
我使用的是Visual Studio 2012,需要通过我的代码来获取和设置打印机的属性,但是使用VB.NET的标准函数我只能获取打印机和文档的“标准”值。这是我的代码:
PrintDialog1.Document = PrintDocument1
PrintDialog1.PrinterSettings = PrintDocument1.PrinterSettings
PrintDialog1.PrinterSettings.PrinterName = "Brother MFC-8950DW Printer"
PrintDialog1.AllowSomePages = True
' This is just to show the properties while debugging
MsgBox(PrintDialog1.PrinterSettings.ToString)
MsgBox(PrintDocument1.DefaultPageSettings.ToString)
If PrintDialog1.ShowDialog = DialogResult.OK Then
PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
'PrintDocument1.Print()
这些是我可以为我在计算机中配置的任何打印机获取的属性:
这可以获取打印机的标准属性,但是我无法获取我正在使用的打印机的一些非常具体的参数,例如打印纸张的两面。如果我直接打开我要使用的打印机(例子中是Brother)的Windows打印机对话框,我可以设置双面打印的属性,但是我猜想这个属性是不能通过PrinterSettings或者DefaultPageSettings获取的,因为在上面显示的调试结果中我看不到。
所以我的猜测是,可能需要打印机的直接库 API 来设置或获取这些参数。在我的情况下,我的客户的打印机是 Fuji-Xerox ApeosPort-IV(能够打印双面、装订文档和其他非标准功能),但没有适用于 .NET 的此类 API。
如果有人遇到过这种问题,我将不胜感激 只是为了确认是否可以通过标准的 .NET 函数获取打印机的这些特定属性。我做了研究,最初我认为这是不可能的,但如果我能在这里得到一些反馈来确认我是否正确或知道如何去做,我将不胜感激。
谢谢!
【问题讨论】: