최보최 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;