Mega Code Archive

 
Categories / Delphi / API
 

How do i print in color

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;