Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.035 c
7-1078344685
Raki
2004-03-03 23:11
2004.04.25
Drag`n`Drop до того, как пользователь отпустит кнопку мыши


8-1074540760
nonameoo
2004-01-19 22:32
2004.04.25
Полноэкранный режим


8-1071673571
Mantic0re
2003-12-17 18:06
2004.04.25
Быстрое масштабирование изображений с билинейной интерполяцией..


14-1080981524
karat
2004-04-03 12:38
2004.04.25
Ваше отношение к MS Access?


1-1081427058
}|{yk
2004-04-08 16:24
2004.04.25
Глюки с плагинами





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский