用PrintTicket,OutputColor打印XPS PagesPerSheet不起作用

我有一个内置的Microsoft XPS编写器打印机生成的.xps文件,我想打印到一个真正的打印机,但具有修改的属性,如:双面打印,灰度,N – up等

我遵循从MSDN的例子,我可以打印.xps罚款,但问题是我只能设置作业的几个属性。 通过使用PrintQueue设置PrintTicket,可以使用修改后的副本和双面打印设置正确打印作业,但不会转换为灰度或承诺任何n-up设置。

看来我并不孤单,通过使用WriterPrintTicketRequired的事件处理程序,XPS文件PrintTicket已经成功地改变了灰度,n-up设置,但是通过使用PrintQueue.AddJob()调用将不会在灰度或n设置。

但是,如果我使用PrintDialog并手动select属性,那么它将按预期打印。 如果我尝试在PrintDialog中设置PrintQueue和PrintTicket属性,那么它将不尊重一些属性。

我的目标是以编程方式打印带有属性的xps文件。 问题是我如何让PrintQueue完全尊重PrintTicket?

仅供参考:xps文件生成为颜色,我可以在.xps包中看到彩色图像。

编辑:事实certificate,打印机驱动程序莫名其妙不打印设置,甚至打印机function显示它支持单色,通过改变到另一个驱动程序非常。 但是,在打印票据中指定灰度不同于在打印对话框UI中select灰度:打印票据中的灰度将输出单色图像,并且在假脱机文件中,指定为呈现颜色,但是它自己被转换的图像。 而后者将生成更逼真的灰度图像。