1

我正在尝试将文档打印到特定的打印机、托盘并使用如下代码设置双面打印设置:

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。看起来可能是坏司机报告错误,我现在将问题留给任何评论。

4

1 回答 1

0

我可以想象,设置与 PrintDocument 关联的 PrinterSettings 实例的 PrinterName 属性不会按预期更新 CanDuplex 等属性。

尝试创建一个新的 PrinterSettings 实例并设置 PrinterName 属性,然后查看 CanDuplex 属性以查看行为是否不同。接下来将该 PrinterSettings 实例分配给 PrintDocument.PrinterSettings。

我只是大声思考并没有尝试这个......

于 2011-08-22T17:26:50.197 回答