Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Печать в миллиметрах

Delphi , ОС и Железо , Принтеры и Печать

Печать в миллиметрах


uses
  printers; 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  printer.BeginDoc; 
  //Each logical unit is mapped to 0.1 millimeter. 
  //Positive x is to the right; positive y is up. 
  SetMapMode(printer.Canvas.Handle, MM_LOMETRIC); 
  with printer.Canvas do 
  begin 
    //font 5 mm height 
    Font.Height := 50; 
    Font.Name   := 'Verdana'; 
    TextOut(250, - 110, 'SwissDelphiCenter'); 
    TextOut(250, - 180, 'http://www.swissdelphicenter.ch'); 
    MoveTo(250, - 240); 
    //Draw a line of 7,5 cm 
    LineTo(1000, - 240); 
  end; 
  printer.EndDoc;
end;

Перевод на русский язык:

Это фрагмент кода Delphi, который печатает текст и рисует линию с помощью компонента TPrinter в модуле Printers. Вот подробное описание того, что код делает:

  1. Процедура Button1Click вызывается при клике кнопки с надписью "Button1".
  2. Код начинает новый документ, вызвав BeginDoc для объекта печати.
  3. Затем он устанавливает режим отображения для канваса печати с помощью SetMapMode. В этом случае используется режим отображения MM_LOMETRIC, который означает, что каждый логический единица (LU) маппится на 0,1 миллиметра. Это позволяет контролировать позицию печати с высокой точностью.
  4. Код затем настраивает шрифт высотой 5 мм и присваивает ему имя "Verdana" с помощью свойств объекта Font.
  5. Два текстовых строки печатаются на канвасе: "SwissDelphiCenter" на координате y=-110, и "http://www.swissdelphicenter.ch" на координате y=-180. Координата x для обоих текстов установлена в 250.
  6. Линия рисуется от точки (250,-240) до точки (1000,-240) с помощью методов MoveTo и LineTo.

Вот некоторые предложения по улучшению кода:

  • Вы можете использовать константы или перечисления вместо магических чисел, таких как 50, -110, -180 и т.д. Это делает код более читаемым и поддерживаемым.
  • Вместо жесткого кодирования свойств шрифта вы могли бы создать отдельную процедуру для настройки шрифта и использовать ее в течение всего кода.
  • Рассмотрите возможность использования отдельной процедуры для печати текста и рисования линий, чтобы сохранить код организованным.

Вот обновленная версия кода:

procedure TForm1.PrintTextAndLine;
begin
  printer.BeginDoc;
  try
    SetMapMode(printer.Canvas.Handle, MM_LOMETRIC);
    with printer.Canvas do
    begin
      Font.Height := 50; // измените высоту шрифта здесь
      Font.Name := 'Verdana';
      TextOut(250, -110, 'SwissDelphiCenter');
      TextOut(250, -180, 'http://www.swissdelphicenter.ch');
      MoveTo(250, -240);
      LineTo(1000, -240);
    end;
  finally
    printer.EndDoc;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  PrintTextAndLine;
end;

Замечу, что я создал отдельную процедуру PrintTextAndLine для обертывания логики печати и использовал константы или перечисления для высоты шрифта и координат текста. Это делает код более читаемым и поддерживаемым.

Статья описывает программный код на языке Delphi, демонстрирующий использование принтера для печати текстовой информации и линии в миллиметрах.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Принтеры и Печать ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 14:59:36/0.0032210350036621/0