2011-08-22 189 views
1

我想我的文檔打印到特定的打印機,托盤和使用這樣的代碼設置的雙工設置:PrintDocument.PrinterSettings.Duplex網絡打印機

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。看起來這可能是錯誤的驅動程序報告錯誤,我現在會留下任何評論的問題。

回答

0

我可以想象,設置與PrintDocument關聯的PrinterSettings實例的PrinterName屬性不會像預期的那樣更新CanDuplex等屬性。

嘗試創建一個新的PrinterSettings實例並設置PrinterName屬性,然後查看CanDuplex屬性以查看行爲是否不同。接下來將該PrinterSettings實例分配給PrintDocument.PrinterSettings。

我只是想大聲,並沒有試試這個...