일반적으로 Print를 하면 윈도에 있는 기본프린트로 프린트가 되는데
궁금한것은 인쇄시 기본프린트로 나오고 다른 컴퓨터에 붙어있는 특정 프린트에서도
동시에 출력하는 방법이 없을까요... 항상 2개의 프린트가 프로그램에서 똑같은 출력을 해야 합니다.
Quick Report 를 이용해서 프린트를 한다고 가정할때
QuickRep1.Print; 하면 기본프린트로 나오는데..
이때 기본프린트 이외 특정 지정된 프린트에도 프린팅이 같이 되게 하려면???
델파이에 입문한지 얼마 안되어서 어떤 명령어를 줘서 코딩을 해야하는지
도무지 모르겠습니다.
한번 인쇄하고 PrintDialog1.Execute; 해서 프린트를 바꾼다음 또 인쇄하고 하는게 너무 힘드네요
도와주십시요.
프린터 바꾸는 건데 기본프린터 바꾸셔셔 출력때리면 될듯 싶습니다.
즐프~
<!--CodeS-->
//Windows System --> New Printer
procedure Set_NewPrinter;
var
WinIni : TiniFile;
S : array[0..64] of Char;
Device :array[0..255] of Char;
Driver :array[0..255] of Char;
Port :array[0..255] of Char;
hDMode :THandle;
PDMode :PDEVMODE;
begin
WinIni := TIniFile.Create('c:\windows\win.ini');
try
Old_Printer := WinIni.ReadString('windows', 'device', 'ERROR');
WinIni.WriteString('windows', 'device', 'LG 전자 PRT-7950 (KSSM),KSSM,\\DIS2000\LG전자PRT-');
finally
WinIni.Free;
end;
StrCopy(S, 'windows');
SendMessage(HWND_BROADCAST, WM_WININICHANGE,0,LongInt(@S));
{
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.GetPrinter(Device, Driver,Port, hDMode);
if hDMode <> 0 then
begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then
begin
pDMode^.dmFields := pDMode^.dmFields or
DM_PAPERSIZE or
DM_PAPERWIDTH or
DM_PAPERLENGTH;
pDMode^.dmPaperSize := DMPAPER_USER;
pDMode^.dmPaperWidth := 380;
pDMode^.dmPaperLength := 280;
GlobalUnlock(hDMode);
end;
end;
Printer.PrinterIndex := Printer.PrinterIndex;
}
end;
//Windows System --> Old Printer
procedure Set_OldPrinter;
var
WinIni : TiniFile;
S : array[0..64] of Char;
begin
WinIni := TIniFile.Create('c:\windows\win.ini');
try
WinIni.WriteString('windows', 'device', Old_Printer);
finally
WinIni.Free;
end;
StrCopy(S, 'windows');
SendMessage(HWND_BROADCAST, WM_WININICHANGE,0,LongInt(@S));
end;
<!--CodeE-->