{ You typically switch a printer to duplex mode by changing its TDeviceMode(API: DEVMODE)record .But first you should test whether the installed printer driver supports this: } usesprinters, winspool; function
PrinterSupportsDuplex: Boolean; var
Device, Driver, Port: array
[0..255] of
Char; hDevMode: THandle; begin
Printer.GetPrinter(Device, Driver, Port, hDevmode); Result := WinSpool.DeviceCapabilities(Device, Port, DC_DUPLEX, nil
, nil
) <> 0; end
; {if it does you can try to switch the duplex mode on before you call richedit.print:} var
Device, Driver, Port: array
[0..80] of
Char; DevMode: THandle; pDevmode: PDeviceMode; begin
// Get printer device mode handle. Printer.GetPrinter(Device, Driver, Port, DevMode); if
Devmode <> 0 then
begin
// lock it to get pointer to DEVMODE record pDevMode := GlobalLock(Devmode); if
pDevmode <> nil
then
try
with
pDevmode^ do
begin
dmDuplex := DMDUP_VERTICAL; dmFields := dmFields or
DM_DUPLEX; end
; finally
// unlock devmode handle. GlobalUnlock(Devmode); end
; end
; { If } end
;