Q&A

  • 프린터 폰트에 대한 의문...
안녕하세요... 허접한 초보 입니다..



제가 프린팅 관련 프로그램을 진행하고 있는데...

의문이 있어서 이렇게 글을 씁니다.



프린터에 대한 개념을 잡아 볼려고, 여기 저기서 소스를 다운 받아서

다음과 같은 코딩을 했습니다.



procedure TfrmMain.PrintWinFile(FileName: String);

var

TopMargin, BottomMargin, LeftMargin, LineHeight, LineWidth: Integer;

begin

if FileExists(FileName) then

begin

Printer.Orientation := poPortrait;

TopMargin := GetDeviceCaps(Printer.Handle, LOGPIXELSY);

BottomMargin := Printer.PageHeight-TopMargin;

LeftMargin := GetDeviceCaps(Printer.Handle, LOGPIXELSX)*3 div 4;

LineHeight := Printer.Canvas.TextHeight('Ay');

LineWidth := Printer.Canvas.TextWidth('W');



ShowMessage('FontSize : '+IntToStr(Printer.Canvas.Font.Size)+

' TopMargin : '+IntToStr(TopMargin)+

' BottomMargin : '+IntToStr(BottomMargin)+

' LeftMargin : '+IntToStr(LeftMargin)+

' RightMargin : '+IntToStr(Printer.PageWidth-LeftMargin)+

' LineHeight : '+IntToStr(LineHeight)+

' LineWidth : '+IntToStr(LineWidth));

end;

end;



결과는 FontSize : 8 TopMargin : 600 BottomMargin : 6144 LeftMargin : 450

RightMargin : 4222 LineHeight : 67 LineWidth : 60 입니다.



제가 Printer.Canvas.Font.Size := 9 한줄을 추가 해서, 실행 해본 결과

FontSize : 9 TopMargin : 600 BottomMargin : 6144 LeftMargin : 450

RightMargin : 4222 LineHeight : 12 LineWidth : 10 입니다.



제가 궁금한 점은 폰트 크기를 키웠는데,

오히려 LineHeight 와 LineWidth 가 줄었습니다.

실제, 프로그램에서도 이런 문제로 폰트 조절에 어려움을 격고 있습니다.



원인을 알려 주시면 감사 하겠습니다.







0  COMMENTS