这听起来像是某些打印机上的初始化问题。这是用例:
// 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 的实例,有一个初始化的方法,但它是受保护的。
这是错误吗?有没有人看到类似的行为?
PS:我使用的打印机是:HP Designjet T7100ps HPGL2