Bonjour tout le monde,

J'utilise Delphi 6 pour imprimer différents documents. et j'ai découvert un problème un peu bizzare que je n'arrive pas à résoudre. J'ai reproduis ce problème sur un petit projet tout simple.


J'ai une imprimante physique qui est installée deux fois sur mon serveur.
- 1 fois pour une impression couleur (PRINTER_NTM_COLOR)
- 1 fois pour une impression noir/Blanc. (PRINTER_NTM_NB)

Ces imprimantes sont partagées sur mes postes clients. ce qui fait que j'ai les imprimantes suivantes :
- \\MON_SERVEUR\PRINTER_NTM_COLOR
- \\MON_SERVEUR\PRINTER_NTM_NB

Si je fais une impression depuis Word ou Excel, pas de problème, l'imprimante COLOR imprimer en couleur, l'imprimante NB imprime en noir/blanc.

J'ai la petite application de test suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
procedure TForm1.Button1Click(Sender: TObject);
begin
     Printer.BeginDoc;
     Printer.Canvas.Brush.Color:=clWhite;
     Printer.Canvas.FillRect(Printer.Canvas.ClipRect);
     Printer.Canvas.Brush.Style:=bsSolid;
     Printer.Canvas.Font.Color:=clRed;
     Printer.Canvas.Font.Size:=20;
     Printer.Canvas.TextRect(Rect(200,200,Printer.PageWidth-200,Printer.PageHeight-200),
                             200, 200, 'Test d''impression DELPHI');
     Printer.Canvas.TextRect(Rect(200,1000,Printer.PageWidth-200,Printer.PageHeight-1000),
                             200, 1000, Label1.Caption);
     Printer.EndDoc;
 
end;
 
procedure TForm1.FormShow(Sender: TObject);
begin
     //PrinterIndex := 4  // Color
     //PrinterIndex := 5 // Noir/Blanc
     Printer.PrinterIndex:=4;
     Label1.Caption:=Printer.Printers[Printer.PrinterIndex]; //nom de l'imprimante
     Printer.Title:='TEST '+Label1.Caption;
end;
Et là, que j'imprime avec l'imprimante couleur (PrinterIndex = 4) ou l'imprimante Noir/Blanc (PrinterIndex = 5), tout s'imprime toujours en noir/blanc.

Si je n'ai qu'une seule imprimante couleur, le texte s'imprime bien en couleur.

Est-ce que quelqu'un a déjà rencontré ce problème. Y a-t-il un moyen de le résoudre ?

merci d'avance