Bonjour,
J'ai besoin dans un programme d'imprimer des pages en monochrome et d'autres en couleurs.
Toutes mes impressions fonctionnent correctement (changement d'orientation en fonction du type de pages etc), SAUF la commutation monochrome/couleur.
Par exemple, si je configure mon imprimante en couleurs, elle reste en couleurs, même si j'écris
printDoc.DefaultPageSettings.Color = false;
dans ma routine d'initialisation de l'impression, et ceci
1 2
|
e.PageSettings.Color = false; |
dans mon événement :
1 2
|
private void printDoc_QueryPageSettings(object sender, QueryPageSettingsEventArgs e) |
et évidemment le contraire également : si l'imprimante est configurée en monochrome, impossible de repasser en couleurs.
Par contre, ce qui est complètement curieux, c'est que si, dans mon programme, via un printdialog, j'affecte la couleur on non, ça fonctionne, et c'est mémorisé durant la session du programme :
1 2 3 4 5 6 7 8 9
|
printDialogMDI.PrinterSettings = printer; // affecter l'imprimante en cours d'utilisation
// (par référence, sera modifiée par le printdialog
if (printDialogMDI.ShowDialog() == DialogResult.OK) // boîte de dialogue de recherche d'imprimante
{ // si confirmation
printer = printDialogMDI.PrinterSettings; // sélectionner l'imprimante
Prefs.PrinterName = printer.PrinterName; // mémoriser son nom
Prefs.Save(); // sauver les préférences
} |
Dans ma routine d'impression, j'affecte au printdocument l'imprimante "printer", et ça, ça fonctionne, les choix sont respectés/
Bref, lorsque je réouvre le printdialog, il m'indique bien mon dernier choix (couleur ou gris). L'information est donc bien mémorisée quelque part, mais je ne trouve pas où (le printer.DefaultPageSettings.color reste toujours à la valeur de l'imprimante par défaut et ne change pas en fonction de ce qu'on choisit dans le printdialog).
Dit autrement : si je change via le printdialog, ça fonctionne, mais le printersettings me renvoie toujours la valeur par défaut de cette imprimante, et ça ne fonctionne que durant la session en cours.
Par contre, impossible de changer le mode couleur/gris sans passer par le dit printdialog, et donc impossible d'imprimer une page en couleur et une autre en gris.
Dans le msdn et tous les exemples trouvés, on indique que la propriété "color" suffit à changer le mode, mais ça ne fonctionne pas (imprimante laser couleur Samsung CLP-300N).
Quelqu'un a une idée?
Merci d'avance, parce que ça me coince.
Claude
Partager