안녕하세요... 허접한 초보 입니다..
제가 프린팅 관련 프로그램을 진행하고 있는데...
의문이 있어서 이렇게 글을 씁니다.
프린터에 대한 개념을 잡아 볼려고, 여기 저기서 소스를 다운 받아서
다음과 같은 코딩을 했습니다.
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 가 줄었습니다.
실제, 프로그램에서도 이런 문제로 폰트 조절에 어려움을 격고 있습니다.
원인을 알려 주시면 감사 하겠습니다.