На этом шаге мы рассмотрим организацию печати и предварительного просмотра документа.
Печать документа осуществляется с помощью метода PrintOut объекта документ. Следующие процедуры позволяют выполнить печать активного документа, печать любого из открытых документов (NameDoc - имя или индекс документа) и печать двух копий активного документа:
procedure TForm1.Button3Click(Sender: TObject); //Печать документа begin W.ActiveDocument.PrintOut; end; procedure TForm1.Button3Click(Sender: TObject); //Печать документа begin W.Documents.Item(NameDoc).PrintOut; end; procedure TForm1.Button3Click(Sender: TObject); //Печать документа begin W.ActiveDocument.PrintOut(Copies:=2); end;
Для предварительного просмотра активного документа перед печатью можно использовать следующую процедуру.
procedure TForm1.Button2Click(Sender: TObject); //Предварительный просмотр документа begin W.ActiveDocument.PrintPreview; end;
Приведем полный текст приложения.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, StdCtrls, ComObj; type TForm1 = class(TForm) CheckBox1: TCheckBox; Label1: TLabel; ComboBox1: TComboBox; Label2: TLabel; ComboBox2: TComboBox; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; UpDown1: TUpDown; UpDown2: TUpDown; UpDown3: TUpDown; UpDown4: TUpDown; Button5: TButton; Button6: TButton; procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation var W:Variant; PS:Variant; {$R *.dfm} procedure TForm1.Button4Click(Sender: TObject); //Выход begin W.Quit; Close; end; procedure TForm1.Button5Click(Sender: TObject); //Создание нового документа begin W:=CreateOleObject('Word.Application'); W.Visible:=True; W.Documents.Add; end; procedure TForm1.Button6Click(Sender: TObject); //Заполнение полей характеристиками текущего документа begin PS:=W.ActiveDocument.PageSetup; CheckBox1.Checked:=PS.LineNumbering.Active; ComboBox1.ItemIndex:=PS.Orientation; ComboBox2.ItemIndex:=PS.VerticalAlignment; Edit1.Text:=IntToStr(PS.PageWidth); Edit2.Text:=IntToStr(PS.PageHeight); Edit3.Text:=IntToStr(PS.TopMargin); Edit4.Text:=IntToStr(PS.LeftMargin); end; procedure TForm1.ComboBox1Change(Sender: TObject); //Изменение ориентации страницы begin PS.Orientation:=ComboBox1.ItemIndex; Edit1.Text:=IntToStr(PS.PageWidth); Edit2.Text:=IntToStr(PS.PageHeight); Edit3.Text:=IntToStr(PS.TopMargin); Edit4.Text:=IntToStr(PS.LeftMargin); end; procedure TForm1.Button1Click(Sender: TObject); //Добавление колонки begin if PS.TextColumns.count<2 then PS.TextColumns.Add(200); end; procedure TForm1.Button2Click(Sender: TObject); //Предварительный просмотр документа begin W.ActiveDocument.PrintPreview; end; procedure TForm1.Button3Click(Sender: TObject); //Печать документа begin W.ActiveDocument.PrintOut; end; end.
На рисунке 1 приведен документ в режиме предварительного просмотра.
Рис.1. Документ в режиме предварительного просмотра
На следующем шаге мы рассмотрим пример программы.