![](images/delphi/004.gif)
Ориентация страницы (книжная или альбомная) определяется значением
свойства Orientation. Программно такой выбор осуществляется путем записи
в свойство Orientation одного из значений — xlPortrait=l или xlLandscape=2.
Размер бумаги задается свойством PaperSize объекта PageSetup. Список воз-
можных значений этого свойства представляет собой набор из нескольких
десятков констант, соответствующих различным типовым размерам бумаги.
Полный список констант можно найти в приложении на сопроводительном
компакт-диске книги или в справочной системе Visual Basic. В следующем
примере представлена только часть этого списка.
Выбор ориентации и размера бумаги
const
// Константы, определяющие ориентацию бумаги
xlPortrait=l;
xlLandscape=2;
// Константы, определяющие размер бумаги
xlPaperLetter=l; // Letter (8-1/2 in. x 11 in.)
xlPaperLetterSmall=2; // Letter Small (8-1/2 in. x 11 in.)
xlPaperTabloid=3; // Tabloid (11 in. x 17 in.)
xlPaperLedger=4; // Ledger (17 in. x 11 in.)
xlPaperLegal=5; // Legal (8-1/2 in. x 14 in.)
xlPaperStatement=6; // Statement (5-1/2 in. x 8-1/2 in.)
xlPaperExecutive=7; // Executive (7-1/2 in. x 10-1/2 in.)
xlPaperA3=8; // A3 (297 mm x 420 mm)
xlPaperA4=9; // A4 (210 mm x 297 mm)
xlPaperEnvelopeDL=27; // Envelope DL (110 mm x 220 mm)
procedure TOKBottomDlg2.OrientationChange(Sender: TObj ect);
begin
case Orientation.Itemlndex of
0:PageSetup.Orientation:=xlPortrait;
1:PageSetup.Orientation:= xlLandscape;
end;
end;
procedure TOKBottomDlg2.PaperSizeChange(Sender: TObject);
begin
case PaperSize.Itemlndex of
0:PageSetup.PaperSize:=xlPaperLetter;
1:PageSetup.PaperSize:=xlPaperLetterSmall;
2:PageSetup.PaperSize:=xlPaperTabloid;
3:PageSetup.PaperSize:=xlPaperLedger;
4:PageSetup.PaperSize:= xlPaperEnvelopeDL;
end;
end;
Используя описанные процедуры, зададим альбомную ориентацию и размер
бумаги "Envelope DL (ПО mm x 220 mm)" (xlPaperEnvelopeDL). Результат
представлен на рис. 15.5.
Номер первой страницы печати определяется свойством First PageNumber
объекта PageSetup. Если оно имеет значение xlAutomatic, то номер первой
страницы определяется "по умолчанию". Чтобы задать конкретный номер
первой страницы, нужно в свойство FirstPageNumber записать его значение.
Следующая процедура позволяет задать номер первой страницы в приложе-
ниях Delphi.
Задание номера первой страницы
procedure TOKBottomDlg2.AutomaticClick(Sender: TObject);
begin
FirstPageNumber.Enabled:= not Automatic.Checked;
i f Automatic.Checked
then PageSetup.FirstPageNumber:=xlAutomatic
else PageSetup.FirstPageNumber:=FirstPageNumber.Value;
end;
![](images/delphi/263.JPG)
Рис. 15.5. Зададим ориентацию и размер бумаги
Выбор нужного масштаба печати позволяет уменьшить количество страниц
заданного размера, необходимых для печати документа. Есть два способа
задания масштаба.
Первый основан на задании величины масштаба в процентах от натураль-
ной величины. Свойство Zoom объекта PageSetup позволяет реализовать
этот способ. Для этого достаточно записать в него величину масштаба.
Обычно масштаб можно задать целым числом в диапазоне от 10 до 400 (%).
При Zoom=False используется второй способ, основанный на задании мак-
симального количества страниц в ширину (свойство FitToPagesWide) и в
высоту (свойство FitToPagesTall) для печатаемого документа.
Следующие процедуры позволяют реализовать оба способа в приложениях
Delphi.
Задание масштаба печати
procedure TOKBottomDlg2.ZoomChange(Sender: TObject);
begin
if Zoom.Value<=100
then PageSetup.Zoom:=Zoom.Value else PageSetup.Zoom:=False;
end;
procedure TOKBottomDlg2.FitToPagesWideChange(Sender: TObject);
begin
PageSetup.FitToPagesWide:=FitToPagesWide.Value;
end;
procedure T0KBottomDlg2.FitToPagesTallChange(Sender: TObject);
begin
PageSetup.FitToPagesTall:=FitToPagesTall.Value;
end;
|