Delphi тип TPrintDialog – класс, который создает выбор принтера и диалог управления.
Dialogs unit
type TPrintDialog = class;
Класс TPrintDialog используется для создания диалогового окна выбора принтера и управления печатью.
Перед печатью из вашего приложения, лучше отобразить диалог печати. Это позволяет пользователю выбирать желательный принтер и атрибуты, наряду с управлением печатью.
Сначала вы используете класс, создавая от него объект, и затем устанавливая требуемые атрибуты диалога из следующего списка:
- Collate – Устанавливается ли предварительно опция Collate.
- Copies – Сколько копий печатать.
- FromPage – Выбранная страница в диапазоне страниц.
- ToPage – Выбранная страница в диапазоне страниц.
- MinPage – Самая ранняя выбранная страница.
- MaxPage – Самая поздняя выбранная страница.
- PrintRange – Выбираемый тип начальной страницы.
- Options – Различные мультивыбираемые варианты.
- PrintToFile – Если ложь, мы печатаем на бумагу.
Значения PrintRange:
- prAllPages – Все страницы для печати.
- prSelection – Выбор страницы для печати.
- prPageNums – Номера страницы для печати.
Вы выбираете один перед запуском диалога - и выясняете, пользователь изменил его, когда диалог закончился.
Значения Options могут быть:
- poPrintToFile – Печать в файл.
- poPageNums – Печать по диапазону страниц.
- poSelection – Печать выбранных страниц.
- poWarning – Предупреждение, если плохой принтер.
- poHelp – Показ помощи.
- poDisablePrintToFile – Печать в файл отвергнута.
Некоторые из этих вариантов могут также быть установлены пользователем диалога. Всегда, впоследствии, проверяйте их значения.
После установки этих вариантов, используйте метод Execute для отображения диалога, проверяйте Булев результат после его выполнения, чтобы знать, продолжить ли печать.
Примечание.
Используется вместе с объектом Printer.
Тип TPrintDialog в Delphi: Относительно простой пример
const
TOTAL_PAGES = 4; // Сколько страниц печатать
var
printDialog : TPrintDialog;
page, startPage, endPage : Integer;
begin
// Создание диалога выбора принтера
printDialog := TPrintDialog.Create(Form1);
// Установка опций диалога печати
printDialog.MinPage := 1;
printDialog.MaxPage := TOTAL_PAGES;
printDialog.ToPage := TOTAL_PAGES;
printDialog.Options := [poPageNums];
// Если пользователь выбрал принтер (или значение по умолчанию), то печатаем!
if printDialog.Execute then
begin
// Используйте функцию Printer, чтобы получить доступ к глобальному объекту TPrinter.
// Set to landscape orientation
Printer.Orientation := poLandscape;
// Установите заголовок printjob - как оно появляется в менеджере задания по выводу на печать
Printer.Title := 'Test print for Delphi';
// Устанавливаем число копий для печати каждой страницы
Printer.Copies := printDialog.Copies;
// Начало печати
Printer.BeginDoc;
// Пользователь выбрал диапазон страниц?
if printDialog.PrintRange = prPageNums then
begin
startPage := printDialog.FromPage;
endPage := printDialog.ToPage;
end
else // Все страницы
begin
startPage := 1;
endPage := TOTAL_PAGES;
end;
// Установка номера начальной страницы
page := startPage;
// Продолжаем печатать пока всё OK
while (not Printer.Aborted) and Printer.Printing do
begin
// Пишем номер страницы
Printer.Canvas.Font.Color := clBlue;
Printer.Canvas.TextOut(40, 20, 'Page number = '+IntToStr(page));
// Увеличиваем номер страницы
Inc(page);
// Теперь начинаем новую страницу - если она не последняя
if (page <= endpage) and (not printer.aborted)
then Printer.NewPage;
end;
// Конец печати
Printer.EndDoc;
end;
end;
Результат
This is a way to live A big life
This is THE way to live THE big life
Похожие функции, процедуры и команды
Printer — возвращает ссылку к глобальному объекту Printer.
TObject — тип базового класса, который является предком для всех других классов.
