我正在尝试将文档打印到特定的打印机,托盘并使用以下代码设置双面打印设置:
void PrintingSystem_StartPrint(object sender, PrintDocumentEventArgs e)
{
//e.g. \\patch2\MIU Copier
e.PrintDocument.PrinterSettings.PrinterName = printerName;
//e.g. Tray 2
e.PrintDocument.DefaultPageSettings.PaperSource = paperSource;
if (e.PrintDocument.PrinterSettings.CanDuplex)
e.PrintDocument.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Horizontal;
}
PrinterName和PaperSource设置工作正常,但CanDuplex属性始终为false,尽管知道复印机能够做到这一点。此外,如果我排除if语句并且只是设置属性它仍然以单面形式打印。有没有办法做我想要的东西我有一点谷歌,它似乎可能是一个特别与网络打印机的问题,但我没有找到任何解决方法。
修改 我已经尝试过几种不同的网络打印机(复印机),它似乎适用于某些而不是其他打印机。即不适用于Gestetner 2212 PCL 5e,但适用于Ricoh Aficio MP C2550。看起来可能是错误的司机报错,我现在就留下任何评论的问题。
答案 0 :(得分:0)
我可以想象,设置与PrintDocument关联的PrinterSettings实例的PrinterName属性不会按预期更新CanDuplex等属性。
尝试创建新的PrinterSettings实例并设置PrinterName属性,然后查看CanDuplex属性以查看行为是否不同。接下来将PrinterSettings实例分配给PrintDocument.PrinterSettings。
我只是在大声思考,并没有尝试过这个......