프린팅은 해본 지가 너무 오래되어서 기억이 가물거리는데..
혹... 폰트 크기를 Font.Size가 아닌 Font.Height로 설정해보세요.
그럼...
초보델피 님이 쓰신 글 :
: 인쇄를 하는데 프린터의 기종에 따라 폰트의 크기가 제어되지 않습니다.
: 이제까지 HP Deskjet 895 와 948을 사용하면서 아래의 소스를 실행하면 폰트 사이즈가 정확히 제어가 되었는데 HP DeskJet 6122와 같이 새로 나온 프린터 나 Qnix 3630E와 같은 프린터에서는 글자 크기가 제어되지 않습니다. 폰트 사이즈를 12로 주더라도 인쇄되어 나오는 크기는 30이상이 되네요.
:
: 아시는 분은 답변 부탁 드립니다
:
:
: 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^.dmOrientation := DMORIENT_LANDSCAPE;
: pDMode^.dmFields := pDMode^.dmFields or
: DM_ORIENTATION or
: DM_PAPERSIZE or
: DM_PAPERWIDTH or
: DM_PAPERLENGTH;
: pDMode^.dmFields := pDMode^.dmFields or dm_PaperSize;
: pDMode^.dmPaperSize := DMPAPER_FANFOLD_US;
: pDMode^.dmPaperWidth := 3920; {단위는 1/10mm}
: pDMode^.dmPaperLength := 2800; {단위는 1/10mm}
: pDMode^.dmDefaultSource := DMBIN_AUTO; //용지자동
:
: GlobalUnlock(hDMode);
: end;
: end;
:
: With Printer do
: begin
: f_Row := 0;
: j := 0;
: BeginDoc;
: SetMapMode( Printer.Handle, MM_LOMETRIC );
:
: Canvas.Font.Name := '돋움체';
: Canvas.Font.Style := [];
:
: canvas.Pen.Width := 3;
: Canvas.Font.Size := 12;
: canvas.Pen.Color := clGreen;
:
: canvas.Pen.Width := 1;
: canvas.Moveto( 200, - 540) ; //line2
: canvas.lineto(1300, - 540) ;
: canvas.Moveto( 200, - 630) ; //line3
: canvas.lineto(1300, - 630) ;
: canvas.Moveto( 370, - 720) ; //line4
: canvas.lineto(1300, - 720) ;
: canvas.Moveto( 370, - 810) ; //line5
: canvas.lineto(1300, - 810) ;
:
: Canvas.Font.Size := 07;
: Canvas.TextOut( 200, - 300, 'aaa');
: Canvas.TextOut(2200, - 300, 'bbb');
:
: EndDoc;
: end;
|