【问题标题】:Is VB.NET PrinterSettings and DefaultPageSettings able to read all the properties of a printer or only the "standard" ones?VB.NET PrinterSettings 和 DefaultPageSettings 能够读取打印机的所有属性还是只能读取“标准”属性?
【发布时间】: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 函数获取打印机的这些特定属性。我做了研究,最初我认为这是不可能的,但如果我能在这里得到一些反馈来确认我是否正确或知道如何去做,我将不胜感激。

谢谢!

【问题讨论】:

    标签: .net vb.net printing


    【解决方案1】:

    我也发现无法使用正常功能。

    我最终从注册表中获取了设置。

    关键是:

    HKEY_LOCAL_MACHINE | SYSTEM | CurrentControlSet | Control | Print | Printers
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-12
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多