Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Вид листа, область и параметры страницы для печати

01.01.2007

Вид листа, область и параметры страницы для печати

Вид рабочего листа может быть представлен в режиме "Разметка страницы", если установлен и выбран принтер, или в режиме "Обычный". В режиме разметки страницы есть возможность изменять область печати. Вид рабочего листа определяется константой, которая содержится в поле View объекта ActiveWindow. Она может иметь значения xlNormalView=1 или xlPageBreakPreview=2. Функция WindowView для приложений Delphi реализует изменение вида рабочего листа.

Function WindowView (view:integer):boolean;
begin
 WindowView:=true;
 try
  E.ActiveWindow.View:=view;
 except
  WindowView:=false;
 end;
End;
 

Когда принтер выбран, можно приступать к настройке параметров страницы печати, которые зависят от параметров выбранного принтера. Параметры настройки печати листа содержатся в полях объекта PageSetup, который является свойством листа. Поля объекта PageSetup содержат и определяют ориентацию и пропорции для печати страницы, размеры полей, колонтитулы, порядок и диапазон печати, качество печати. Из всего этого набора остановимся на тех, которые используются наиболее часто. Это задание ориентации страницы, размер бумаги и область печати. Ориентация бумаги определяется константой, которая записывается в поле Orientation объекта PageSetup. Она может иметь два значения: xlLandscape - альбомная и xlPortrait - книжная. Функция PageOrientation реализует это в приложениях Delphi.

Function PageOrientation (sheet:variant;
  orientation:integer):boolean;
begin
 PageOrientation:=true;
 try
  E.ActiveWorkbook.Sheets.Item
   [sheet].PageSetup.Orientation:=orientation;
 except
  PageOrientation:=false;
 end;
End;
Размер бумаги определяется константой, записанной в поле PaperSize, которая может иметь более 40 значений, каждое из которых соответствует различным типовым размерам бумаги (см. приложение www.kornjakov.ru/st2_4.zip). Наиболее часто используются размеры бумаги формата A3 (xlPaperA3=8) и A4 (xlPaperA4=9).

Function PagePaperSize (sheet:variant;
  papersize:integer):boolean;
begin
 PagePaperSize:=true;
 try
  E.ActiveWorkbook.Sheets.Item
   [sheet].PageSetup.PaperSize:=papersize;
 except
  PagePaperSize:=false;
 end;
End;
 

Область границ страницы - прямоугольная область ячеек, которая будет выведена на печать. Для задания области границ необходимо в поле PrintArea объекта PageSetup записать строку, которая определит верхнюю левую, правую нижнюю ячейку области, например: PrintArea="$A$1:$I$26". Ячейки, которые не входят в эту область, не будут выведены на печать.

Function PagePrintArea (sheet:variant;
  printarea:string):boolean;
begin
 PagePrintArea:=true;
 try
  E.ActiveWorkbook.Sheets.Item
   [sheet].PageSetup.PrintArea:=printarea;
 except
  PagePrintArea:=false;
 end;
End;
 

Для того, чтобы линии сетки отображались на печатной форме или были спрятаны, используется свойство PrintGridlines объекта PageSetup.

Function PrintGridlines (sheet:variant;
  gridline:boolean):boolean;
begin
 PrintGridlines:=true;
 try
  E.ActiveWorkbook.Sheets.Item
   [sheet].PageSetup.PrintGridlines:=gridline;
 except
  PrintGridlines:=false;
 end;
End;
 

Важным свойством объекта PageSetup являются размеры полей слева, справа, сверху и снизу (LeftMargin, RightMargin, TopMargin, BottomMargin). В эти поля записывается количество точек. Если исходные величины полей заданы в дюймах, то преобразование осуществляем, используя функцию Point=Application.InchesToPoints(Inche), где Point - количество точек, Inche - величина в дюймах.