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