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

Распечатать TStrings на принтере по умолчанию

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

Распечатать TStrings на принтере по умолчанию


procedure PrintStrings(S: TStrings; Font: TFont; Title: string);
var
 LeftMargin, TopMargin, LineCoord, LineOnPage, LinesOnDoc,
 CurrentLine, TextHeight, LinesPerPage, LineInterval: integer;

 procedure StartDoc;
 begin
   LinesOnDoc := S.Count;
   Printer.Canvas.Font.Assign(Font);
   Printer.Canvas.TextOut(0, 0, ' ');
   LeftMargin := (Printer.Canvas.Font.PixelsPerInch) div 2;
   TopMargin  := (Printer.Canvas.Font.PixelsPerInch) div 2;
   TextHeight := Abs(Printer.Canvas.Font.Height);
   LineInterval := TextHeight + (TextHeight div 2);
   LinesPerPage := (Printer.PageHeight - TopMargin) div LineInterval;
   CurrentLine := 0;
 end;

 function MorePages:boolean;
 begin
   Result := (CurrentLine <  LinesOnDoc) and
             not Printer.Aborted;
 end;

 procedure StartPage;
 begin
   LineOnPage := 0;
   LineCoord := TopMargin;
 end;

 procedure NextPage;
 begin
   if MorePages then Printer.NewPage;
 end;

 function MoreLines:boolean;
 begin
   Result := (LineOnPage <  LinesPerPage) and
             (LineOnPage <  LinesOnDoc) and
             not Printer.Aborted;
 end;

 procedure NextLine;
 begin
   Inc(LineOnPage);
   Inc(LineCoord, LineInterval);
   Inc(CurrentLine);
 end;

 procedure PrintLine;
 begin
   Printer.Canvas.TextOut(LeftMargin, LineCoord, S.Strings[CurrentLine]);
 end;

begin
 Printer.Title := Title;
 Printer.BeginDoc;
 StartDoc;
 while MorePages do
 begin
   StartPage;
   while MoreLines do
   begin
     PrintLine;
     NextLine;
     Application.ProcessMessages;
   end;
   NextPage;
 end;
 Printer.EndDoc;
end;

Программный процессор Delphi, именуемый PrintStrings, печатает коллекцию строк (TStrings) на умолчанию принтере с указанным шрифтом и заголовком.

Вот разбивка кода:

  1. Процедура принимает три параметра: S (объект TStrings), Font (объект TFont) и Title (строка).
  2. Она инициализирует несколько целочисленных переменных для хранения значений, связанных с печатью:
    • LeftMargin: левый отступ страницы
    • TopMargin: верхний отступ страницы
    • LineCoord: текущая координата строки на странице
    • LineOnPage: количество строк, напечатанных на текущей странице
    • LinesOnDoc: общее количество строк в документе
    • CurrentLine: текущая строка, печатаемая
    • TextHeight: высота одиночной строки текста
    • LinesPerPage: максимальное количество строк, которое может поместиться на странице
    • LineInterval: расстояние между последовательными строками
  3. Процедура определяет несколько вложенных процедур и функций:
    • StartDoc: инициализирует процесс печати, устанавливающий отступы, рассчитывая высоту текста и подсчитывая общее количество строк.
    • MorePages: возвращает true, если есть еще страницы для печати.
    • StartPage: сбрасывает координату строки и счетчик страниц для новой страницы.
    • NextPage: печатает новую страницу, если есть еще страницы для печати.
    • MoreLines: возвращает true, если есть еще строки для печати на текущей странице.
    • NextLine: увеличивает счетчик строк, координату строки и текущую строку, печатаемую.
    • PrintLine: печатает текущую строку текста с использованием указанного шрифта и координат.
  4. Основной логикой процедуры является внешний цикл, который проходит по каждой странице:
    • Она вызывает StartPage, чтобы сбросить счетчик страниц и координату строки.
    • Внутренний цикл печати строк до тех пор, пока не будет напечатано все количество строк на текущей странице или документ не будет окончен.
    • Для каждой строки она вызывает PrintLine для печати текста и увеличивает счетчик строк с помощью NextLine.
    • После печати всех строк на текущей странице она вызывает NextPage, чтобы перейти к следующей странице.

В целом, эта процедура обеспечивает базовое реализацию для печати коллекции строк на умолчанию принтере с регулируемыми отступами и шрифтом.

Программа PrintStrings позволяет распечатать список строк на принтере по умолчанию, используя указанный шрифт и заголовок.


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

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




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


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


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:50:16/0.0055038928985596/1