PrintDocument.PrinterSettings.Duplex Сетевой принтер - PullRequest
1 голос
/ 22 августа 2011

Я пытаюсь распечатать свой документ на определенном принтере, в лотке и установить параметры дуплекса, используя следующий код:

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, но работает на Ricoh Aficio MP C2550.Похоже, что плохие водители сообщают неправильно, я оставлю вопрос на время для любых комментариев.

1 Ответ

0 голосов
/ 22 августа 2011

Я могу себе представить, что установка свойства PrinterName экземпляра PrinterSettings, связанного с PrintDocument, не обновляет свойства, такие как CanDuplex, как ожидалось.

Попробуйте создать новый экземпляр PrinterSettings и установить свойство PrinterName, а затем посмотрите на свойство CanDuplex, чтобы увидеть, отличается ли поведение. Затем назначьте этот экземпляр PrinterSettings для PrintDocument.PrinterSettings.

Я просто мысли вслух и не пробовал это ...

...