Главная страница
    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.049 c
1-1081334569
hawkins
2004-04-07 14:42
2004.04.25
запускать только одну копию программы...


14-1080757265
тихий вовочка
2004-03-31 22:21
2004.04.25
Самая быстрая запись на диск


3-1080209320
Zilog
2004-03-25 13:08
2004.04.25
глюк!? Не могу изменить записи в таблице после сортировки..


1-1081407631
Tack83
2004-04-08 11:00
2004.04.25
"Подталкивание" формы при масштабировании.


11-1063871195
Stargazer
2003-09-18 11:46
2004.04.25
ScreenSaver preview





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский