인쇄 용지 설정에 대한 질문입니다.
업무용 프로그램을 개발하고 있습니다.
환경은 다음과 같습니다.
OS : WINDOWS NT 4.0
TOOL : DELPHI 5.0
PRINTER : 대원 정보 시스템 DPX4500
문제는 다음과 같습니다.
1. 인쇄용지 설정을 바꿔도 실제 출력되는 용지 크기 설정이 변하지 않는군요
2. 그 이유는 여러가지 설정을 바꿔도 페이지와 페이지사이의 폭이 변하지 않는군요
3일째 고민하고 있습니다.
해도 해도 안돼서 이렇게 글을 올립니다.
고수님들의 조언 부탁드립니다.
아래와 같이 두가지 실험을 해봤습니다.
1. 첫번째는 사용자 정의로 인쇄용지의 크기를 정했습니다.
2. 두번째는 DMPAPER_PENV_9_ROTATED 324 x 229
*********** 사용자 정의인 경우 **************
if hDMode <> 0 then begin
pDMode := GlobalLock(hDMode);
if pDMode <> nil then begin
pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
pDMode^.dmPaperSize := DMPAPER_USER;
pdMode^.dmPaperWidth := 3130;
pdMode^.dmpaperLength := 2290;
GlobalUnlock(hDMode);
end; // end of if
end; // end of if
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.BeginDoc;
SetMapMode( Printer.Handle, MM_LOMETRIC );
with Printer.Canvas do begin
Font.Name := '굴림체';
Font.Height := 60;
TextOut(400,-1,'테스트입니다.');
printer.NewPage;
TextOut(400,-1,'테스트입니다.');
end; // end of with Printer.Canvas
Printer.EndDoc;
************** DMPAPER_PENV_9_ROTATED 324 x 229 **********
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;
pDMode^.dmPaperSize := DMPAPER_PENV_9_ROTATED;
GlobalUnlock(hDMode);
end; // end of if
end; // end of if
Printer.PrinterIndex := Printer.PrinterIndex;
Printer.BeginDoc;
SetMapMode( Printer.Handle, MM_LOMETRIC );
with Printer.Canvas do begin
Font.Name := '굴림체';
Font.Height := 60;
TextOut(400,-1,'테스트입니다.');
printer.NewPage;
TextOut(400,-1,'테스트입니다.');
end; // end of with Printer.Canvas
Printer.EndDoc;