На главную
Подписка
Новости


Рейтинг@Mail.ru











Главная / DELPHI / Часто задаваемые вопросы и ответы на них / Редакторы текста, отчеты / Вместо печати графики я хочу использовать резидентный шрифт принтера. Как? Сделать домашней страницей Добавить в избранное Написать писмо

Вместо печати графики я хочу использовать резидентный шрифт принтера. Как?


Используте функцию Windows API - GetStockObject() чтобы получить дескриптор (handle) шрифта по умолчанию устройства (DEVICE_DEFAULT_FONT) и передайте его Printer.Font.Handle.
Пример:

uses Printers;

procedure TForm1.Button1Click(Sender: TObject);
var
   tm : TTextMetric;
   i : integer;
begin
   if PrintDialog1.Execute then
   begin
       Printer.BeginDoc;
       Printer.Canvas.Font.Handle := GetStockObject(DEVICE_DEFAULT_FONT);
       GetTextMetrics(Printer.Canvas.Handle, tm);
       for i := 1 to 10 do
       begin
           Printer.Canvas.TextOut(100,i * tm.tmHeight +
               tm.tmExternalLeading,'Test');
       end;
       Printer.EndDoc;
   end;
end;



Источник: Дельфи. Вокруг да около.





Copyright ©   "Мастера DELPHI"   E-mail:   delphi@mastak.com  http://www.delphimaster.ru
Источник получения информации: http://www.delphimaster.ru
Hosted by uCoz