Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.22;
Скачать: CL | DM;

Вниз

Как емулировать CONDENSED для шрифта   Найти похожие ветки 

 
Леван   (2004-08-09 12:17) [0]

Привет Мастерам!
Известно, что режим Condensed (и соответственно, Double width)
для матричного принтера меняет ширину шрифта , не изменяя висоту.
Как добиться того же результата в Виндовс ?
(стандартный font.size пропорционально меняет оба параметра фонта)


 
Леван   (2004-08-09 14:51) [1]

Похоже, это уже невозможно в принципе
или я не прав, мастера?


 
simpson ©   (2004-08-09 15:37) [2]

Возможно.
Режим Condensed (как и Draft и т.п.) - это свойство внутренних шрифтов принтера.

При печати с помощью средств Windows внутренние шрифты принтера не используются и вся информация передается принтеру в виде графики.

Если необходимо напечатать что-нибудь с использованием внутренних шрифтов принтера, в том числе и в режиме Condensed, придется выводить информацию на принтер с помощью специфического для него языка команд, таких, как ESC/POS или EPL, не используя стандартные средства Windows.

Так что, решайте сами.


 
s999   (2004-08-09 15:45) [3]


> стандартный font.size пропорционально меняет оба параметра
> фонта


Да, используя TFont этого не получится. А если работать напрямую через API, то можно. Структура LogFont имеет как lfHeight так и lfWidth.


 
Леван   (2004-08-09 16:31) [4]

to s999
Интересно!
спасибо, попробую


 
KSergey ©   (2004-08-09 16:34) [5]

Можно еще масштаб изометрический включить...
SetMapMode (Printer.Canvas.Handle, MM_...)


 
Леван   (2004-08-09 17:12) [6]

to KSergey :
не смог найти в хелпе описание setmapmode
Может, подкинете ссилочку ?!

to s999
как получить эту самую структуру уже существующег фонта?


 
KSergey ©   (2004-08-09 17:15) [7]

Плохо искал...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/cordspac_3c6d.asp

Либо см. win32sdk.hlp


 
Леван   (2004-08-09 17:25) [8]

to KSergey
Спасибо
попробую разобраться


 
s999   (2004-08-09 17:49) [9]


> как получить эту самую структуру уже существующег фонта?


var
  F:TLogFont;
  NewFont: HFONT;
....
  with F do
  begin
    .....
    lfHeight := 10;
    lfWidth := 20;
    StrPCopy(lfFaceName, "Arial");
    .....
  end;
  NewFont := CreateFontIndirect(F);
....


 
Леван   (2004-08-10 09:31) [10]

to s999
Я извиняюсь, но есть ли возможность с поможью структури
TLogFont из существующего фонта создать динамически новый фонт с теми же характеристикаи, но меньшей ширины
из Вашего последнего постинга я это не понял
еще раз извините
Леван


 
s999   (2004-08-10 12:58) [11]


> возможность с поможью структури
> TLogFont из существующего фонта создать динамически


Что ты имеешь в виду под существующим фонтом? Существующий экземпляр TFont? Конечно можно, только на выходе будет не другой экземпляр TFont-а, а HFont. То есть, присваиваешь все что можно в TLogFont и создаешь HFont, далее с помощью функции SelectObject определяешь этот HFont некоторому Canvas.



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

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

Наверх




Память: 0.49 MB
Время: 0.046 c
3-1090847343
MORA
2004-07-26 17:09
2004.08.22
2 лук-ап поля на одну таблицу


14-1091453406
Экспериментатор
2004-08-02 17:30
2004.08.22
Ура, я купил ноутбук


14-1091769275
ИМХО
2004-08-06 09:14
2004.08.22
Гугл


14-1091177435
peypivo
2004-07-30 12:50
2004.08.22
Тарифи на мобильную связь.


14-1091463976
Мазут Береговой
2004-08-02 20:26
2004.08.22
Вот такая музыка у меня вышла.