Question:
How do I print in color?
Answer:
Generally, no special effort is required to print in color assuming
the printer is a color printer and is set to its native color mode.
Windows will automatically convert color to black and white if the
printer does not support color. If you need to change the color mode
in code, you can access the DevMode structure of the printer driver.
Example:
uses Printers;
procedure TForm1.Button1Click(Sender: TObject);
var
 Device : array[0..255] of char;
 Driver : array[0..255] of char;
 Port : array[0..255] of char;
 hDMode : THandle;
 PDMode : PDEVMODE;
begin
 with Printer do begin
 PrinterIndex := PrinterIndex;
 GetPrinter(Device, Driver, Port, hDMode);
 if hDMode <> 0 then begin
 pDMode := GlobalLock(hDMode);
 if pDMode <> nil then begin
 pDMode.dmFields := pDMode.dmFields or dm_Color;
 pDMode.dmColor := DMCOLOR_COLOR;
 GlobalUnlock(hDMode);
 end;
 end;
 PrinterIndex := PrinterIndex;
 BeginDoc;
 Canvas.Font.Color := clRed;
 Canvas.TextOut(100,100, 'Red As A Rose!');
 EndDoc;
 end;
end;