Я пытаюсь распечатать свой документ на определенном принтере, лотке и установить параметры двусторонней печати, используя такой код:
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 и просто устанавливаю свойство, оно все равно печатается в симплексе. Есть ли способ сделать то, что я хочу? У меня было немного Google, и кажется, что это может быть проблема именно с сетевыми принтерами, но я не нашел обходного пути.
Редактировать: с тех пор я попробовал это на нескольких разных сетевых принтерах (копировальных устройствах), и, похоже, это работает на некоторых, а не на других. А именно, не работает на Gestetner 2212 PCL 5e, но работает на Ricoh Aficio MP C2550. Похоже, это могут быть плохие драйверы, сообщающие неправильно, я оставлю вопрос на данный момент для любых комментариев.