2011-08-22 3 views
1

Je suis en train d'imprimer mon document sur une imprimante spécifique, plateau et définir les paramètres duplex en utilisant le code comme ceci:PrintDocument.PrinterSettings.Duplex imprimante réseau

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; 
} 

Les paramètres PRINTERNAME et PaperSource fonctionnent parfaitement mais le CanDuplex la propriété est toujours fausse en sachant que le copieur en est capable. De plus, si j'exclue l'instruction if et que je définis simplement la propriété, elle s'imprime toujours en simplex. Est-il possible de faire ce que je veux J'ai eu un peu de google et il semble que ce soit un problème spécifique avec les imprimantes réseau, mais je n'ai pas trouvé de travail.

Edit: Je l'ai depuis essayé sur quelques différentes imprimantes réseau (copieurs) et il semble fonctionner sur certains et pas d'autres. Notamment ne fonctionne pas sur Gestetner 2212 PCL 5e mais fonctionne sur Ricoh Aficio MP C2550. On dirait que ce sont peut-être de mauvais conducteurs qui signalent à tort, je vais laisser la question pour l'instant pour tout commentaire.

Répondre

0

Je peux imaginer que la définition de la propriété PrinterName de l'instance PrinterSettings associée à PrintDocument ne met pas à jour les propriétés telles que CanDuplex comme prévu. Essayez de créer une nouvelle instance de PrinterSettings et définissez la propriété PrinterName, puis examinez la propriété CanDuplex pour voir si le comportement est différent. Ensuite, affectez cette instance PrinterSettings à PrintDocument.PrinterSettings.

Je pense juste à haute voix et n'ai pas essayé ceci ...

Questions connexes