2009-11-03 6 views
0

J'essaie de configurer du code pour imprimer sur différents tiroirs sur un copieur photo en fonction de ce que le document est (différentes tailles, couleurs de papier ...). C'est un type particulier de copieur, donc je ne m'inquiète pas trop du fait que le code fonctionne dans d'autres scénarios. Je veux toujours montrer la boîte de dialogue d'impression, juste avec les paramètres ayant de meilleurs paramètres par défaut pour chaque document.C# PrintDialog.PrinterSettings.CanDuplex Rapports incorrectement

J'ai réussi à installer la majorité de ce que je veux utiliser les propriétés dans

PrintDialog.PrinterSettings. 

Cependant à essayer de définir l'impression recto verso en utilisant

PrintDialog.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical; 

Il échoue, reste le même comme avant . Si je vérifie si duplex est pris en charge en utilisant

PrintDialog.PrinterSettings.CanDuplex; 

Il retourne faux qui n'est pas le cas, je peux changer la boîte de dialogue et il imprime bien. Quelqu'un d'autre a-t-il eu ce problème? Y at-il un travail autour? Peut-être quelque chose impliquant COM (s'il vous plaît être gentil pas beaucoup utilisé code interop)

C'est un copieur Gestetner 2212 et je crois que le serveur d'impression est une machine Windows Server 2008.

Edit:

J'ai trouvé ce lien

http://bytes.com/topic/c-sharp/answers/238860-using-setprinter-c-set-duplex-option-print-prefs

Ce qui semble être un problème similaire, il semble être une sorte de problème lié à l'utilisation d'une imprimante en réseau et en essayant de définir duplex. Cependant, le lien ne publie pas la solution qui leur a été envoyée par courriel (je déteste quand les gens le font). Quelqu'un sait comment je peux définir le duplex en utilisant le code d'interopérabilité COM.

Répondre

0

Apparaît que la propriété recto verso des imprimantes réseau ne peut pas être définie facilement dans le code .NET, même si elle indique que la propriété n'a pas été correctement sortie. Il y a un moyen de le faire en utilisant com interop mais il faut encore modifier les niveaux de sécurité pour l'imprimante, donc c'est plus compliqué que ça en vaut la peine.

0

Essayez mettre en œuvre un gestionnaire pour l'événement PrintPage avec le code suivant:

if (e.PageSettings.PrinterSettings.IsValid && e.PageSettings.PrinterSettings.CanDuplex) 
    e.PageSettings.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical; 

Essayé avec une HP Laserjet M3035. Il n'a pas été affiché dans la fenêtre PrintDialog mais a quand même imprimé le document en duplex.

Questions connexes