Delphi-Help

Главная Статьи Принтеры и Печать Вместо печати графики используем резидентный шрифт принтера

Вместо печати графики используем резидентный шрифт принтера

Оцените материал
(0 голосов)


Вместо печати графики используем резидентный шрифт принтера

Вопрос:

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

Ответ:

Используйте функцию 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;
Прочитано 4291 раз

Авторизация



Счетчики