Q&A

  • Re: 프린터의 용지및 용지함설정 질문
최보최 wrote:

> 안녕하세요!!

> 프린터설정화면을 만드는데 막막하군요!

> 프린터가 가지고 있는 용지정보와 용지함 정보를 읽을려고 하는데

> 영 되질않는군요 도와주세요!!

> 고수님들 그럼 부탁드림니다..

> 감사 꾸뻑~~~~~~

>



// 아래 내용은 이곳 Q&A에 김영대님께서 답변하신 내용입니다...

// '용지설정' 하시고 검색해보세요....

// 좋은 하루 되세요...



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

Printer.PrinterIndex := Printer.PrinterIndex;

Printer.GetPrinter(Device, Driver, Port, hDMode);

if hDMode <> 0 then

begin

pDMode := GlobalLock(hDMode);

if pDMode <> nil then

begin

{legal 용지로 바꾸는 예}

pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;

pDMode^.dmPaperSize := DMPAPER_LEGAL; // Windows.pas에서 DMPAPER_ 로 시작하는 상수값을 찾아보세요



(*

{사용자 정의 용지로 바꾸는 예}

pDMode^.dmOrientation := DMORIENT_PORTRAIT;

pDMode^.dmFields := pDMode^.dmFields or

DM_ORIENTATION or

DM_PAPERSIZE or

DM_PAPERWIDTH or

DM_PAPERLENGTH;

pDMode^.dmPaperSize := DMPAPER_USER;

pDMode^.dmPaperWidth := 500 {단위는 mm}

pDMode^.dmPaperLength := 300 {단위는 mm}



{용지 공급을 바꾸는 예}

pDMode^.dmFields := pDMode^.dmFields or DMBIN_MANUAL;

pDMode^.dmDefaultSource := DMBIN_MANUAL;

*)



GlobalUnlock(hDMode);

end;

end;

Printer.PrinterIndex := Printer.PrinterIndex;



Printer.BeginDoc;

Printer.Canvas.TextOut(100,100, 'Test 1');

Printer.EndDoc;

end;



0  COMMENTS