我正在尝试将文档打印到特定的打印机、托盘上,并使用如下代码设置双工设置:
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属性始终是错误的,尽管知道复印机能够做到这一点。另外,如果我排除if语句并设置属性,它仍然以单纯形打印。有没有办法做我想做的事,我有一点谷歌,这似乎是一个问题,特别是网络打印机,但我还没有找到任何工作。
编辑:,我已经在几个不同的网络打印机(复印机)上试过了,它似乎可以在一些,而不是其他。也就是说,在Gestetner 2212 PCL 5e上不工作,但在理光Aficio C2550上工作。看起来这可能是不好的司机报告错误,我将留下问题,目前的任何评论。
发布于 2011-08-22 17:26:50
我可以想象,设置与PrinterName关联的PrinterSettings实例的PrintDocument属性并不会像预期的那样更新属性,比如CanDuplex。
尝试创建一个新的PrinterSettings实例并设置PrinterName属性,然后查看CanDuplex属性以查看行为是否不同。接下来,将该PrinterSettings实例分配给PrintDocument.PrinterSettings。
我只是大声地想出来,没有试过这个.
https://stackoverflow.com/questions/7146013
复制相似问题