БОЛЬШОЙ FAQ ПО 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
       Printer.Canvas.TextOut(100,i * tm.tmHeight + tm.tmExternalLeading,'Test');
     Printer.EndDoc;
   end;
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Видеокурс ВЗЛОМ