PDA

View Full Version : چاپ دوطرفه با پرینترهای دو طرفه



idehrayan
شنبه 04 بهمن 1393, 09:05 صبح
سلام به همه اساتید حرفه ای
چطوری میتونیم در پرینترهایی که قابلیت چاپ دوطرفه را دارن پرینت دو طرفه انجام بدیم.
البته در صورت امکان بدون استفاده از ابزار های گزارش گیری.

idehrayan
شنبه 04 بهمن 1393, 11:12 صبح
{
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:
}
uses
printers, 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 ;