Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: 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 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
1-1080945754
Pattern
2004-04-03 02:42
2004.04.25
Рекорды в Delphi и структуры в C++


7-1077698501
LK
2004-02-25 11:41
2004.04.25
Измерение в микросекундах


1-1081284353
Yanis
2004-04-07 00:45
2004.04.25
Файлы, файлы.


7-1077650405
Pavel74
2004-02-24 22:20
2004.04.25
если ето doc то открыть его в worde а если ето pdf то в аcrob ...


1-1081245924
V-Isa
2004-04-06 14:05
2004.04.25
Как получить матрицу битов изображения символа.