这听起来像某些打印机上的初始化问题。 这是用例:
// Get the default printer.
PrintQueue printer = LocalPrintServer.GetDefaultPrintQueue();
// Get the printer properties as XML from the system and populate the instance of PrinterProperties.
Stream printerDocmentStream = printer.GetPrintCapabilitiesAsXml();
从检索到的XML文档中,XML元素PageMediaSize不包含某些类别打印机支持的页面大小的完整列表。
但是,在调用DefaultPrintTicket后检索XML文档时,XML元素PageMediaSize将返回所有支持的页面大小。代码如下:
// This call initializes the printer properties. <--------------------
PrintTicket dummyPrintTicket = printer.DefaultPrintTicket; <-----------
// Get the default printer.
PrintQueue printer = LocalPrintServer.GetDefaultPrintQueue();
// Get the printer properties as XML from the system and populate the instance of PrinterProperties.
Stream printerDocmentStream = printer.GetPrintCapabilitiesAsXml();
我猜测对DefaultPrintTicket的调用初始化了PrintQueue的实例,有一个初始化的方法,但它受到保护。
这个错误吗?有人看到过类似的行为吗?
P.S:我使用的打印机是:HP Designjet T7100ps HPGL2
答案 0 :(得分:1)
这是证实了Bug。如果GetPrintCapablitiesAsXml()是PrintQueue实例调用的第一个方法,则返回的XML不会正确枚举打印机的所有属性。