Вниз
Скачать: CL | DM;

Печать-принтер-шрифт   Найти похожие ветки 

 
bbgone   (2004-04-05 20:54) [0]

есть программа...

var
 tm          : TTextMetric;
 lf          : TLOGFONT;

   with lf do
   begin
     lf.lfHeight := StdHeight;
     lf.lfWidth := 0;
     lf.lfEscapement := 0;
     lf.lfOrientation := 0;
     lf.lfWeight := FW_MEDIUM;
     lf.lfCharSet := OEM_CHARSET;
     lf.lfPitchAndFamily := FIXED_PITCH or FF_MODERN;
     lf.lfClipPrecision := CLIP_DEFAULT_PRECIS;
     lf.lfOutPrecision := OUT_DEFAULT_PRECIS;
     lf.lfQuality := DEFAULT_QUALITY;
     lf.lfFaceName := "Courier New";
   end;
   Font1 := CreateFontIndirect(lf);
   SelectObject( hDC,Font1);
   SetBkMode( hDC, TRANSPARENT);
   GetTextMetrics( hDC, tm);
   StdHeight := tm.tmHeight;
   StdWidth := tm.tmAveCharWidth;

   StdWidthCond := StdWidth * 5 div 8;

   // Condensed font - Font2
   with lf do
   begin
     lf.lfHeight := StdHeight;
     lf.lfWidth := StdWidthCond;
     lf.lfEscapement := 0;
     lf.lfOrientation := 0;
     lf.lfWeight := FW_MEDIUM;
     lf.lfCharSet := OEM_CHARSET;
     lf.lfPitchAndFamily := FIXED_PITCH or FF_MODERN;
     lf.lfClipPrecision := CLIP_DEFAULT_PRECIS;
     lf.lfOutPrecision := OUT_DEFAULT_PRECIS;
     lf.lfQuality := DEFAULT_QUALITY;
     lf.lfFaceName := "Courier New";
   end;
   Font2 := CreateFontIndirect(lf);

При печати на реальный принтер(использую TextOut)под NT/Win2k/XP
ширина строки больше, чем под Win95/98/Me.
В чем секрет?


 
MBo ©   (2004-04-06 05:59) [1]

hDC относится к принтеру?
Вообще логический шрифт может соответствовать различным физическим реализациям шрифта в зависимости, например, от драйвера принтера. Кроме того, tmAveCharWidth - только оценочная характеристика. Если требуется узнать ширину строки, можно использовать GetTextExtentPoin32, но и это не гарантирует абсол.тной точности. См. также GetCharABCWidth и т.п. функции


 
bbgone   (2004-04-06 17:23) [2]

hDC относится к принтеру.
Полученный логический шрифт под разными платформами получается
абсолютно одинаковый , кроме одного параметра - PitchAndFamily.
Под Win95/98/Me - 49 (т.е. FIXED_PITCH or FF_MODERN) а под NT/Win2k/XP - 62 (видимо FIXED_PITCH or FF_MODERN or FF_SWISS)
в результате ширина контрольной строки 3752 под Win98
и 4200 под NT(Для Font1).



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
8-1074540760
nonameoo
2004-01-19 22:32
2004.04.25
Полноэкранный режим


14-1080757008
gn
2004-03-31 22:16
2004.04.25
хочу похвастатся моя любимая написала первую программу


1-1081342555
Ozone
2004-04-07 16:55
2004.04.25
Потоки


14-1080925674
SergP
2004-04-02 21:07
2004.04.25
Что за прикол такой?


6-1077907167
ALeX.B.
2004-02-27 21:39
2004.04.25
Помогите! Нужен рабочий FTPServer!




   Наверх