понедельник, 31 мая 2010 г.

Разделы и их свойства

Доброго времени суток).
В этом посте разберем: что такое раздел в WORDe, как создать раздел из PHP, как изменить стиль раздела.
Раздел (section) - "это часть документа, форматирование которой никак не связано с форматированием остального документа". Приведу стандартный пример:

На изображении видим страницу, хотя больше похоже на альтернативу туалетной бумаги в школе, последний тетрадный листок исписанный бреднями измученного школьника, но, судя по "Lorem Ipsum" это бывший конспект по филосфии. Почитайте тут. Так, ладно, вернемся к разделам. На одной странице созданы два раздела, под пунктом "один" обозначен раздел с одной колонкой, под "два" - раздел с двумя колонками. Вроде и задроту-линейщику ясно.





 Чтобы создать раздел по умолчанию используется следующий код: 
 
$section = $PHPWord->createSection();

Предыдущая строка создаст раздел порно... эээ...портретной ориентации, со стандартными полями (оступами).

Разберем свойства раздела, которые можно задать из PHP:
orientation - ориентация страницы, может принимать два значения: null - по умолчанию, портретная; landscape - альбомная, и гетеро, пардоньте, не удержался...
marginTop - отступ сверху, измеряется в  твипах (twips).
marginLeft - отступ слева, измеряется в  твипах (twips).
marginRight - отступ справа, измеряется в  твипах (twips).
marginBottom - отступ сниза, измеряется в  твипах (twips).

Возможны два способа задать стиль раздела. Из массива, перед создание самого раздела:
  
$sectionStyle = array('orientation' => null,        //задали портретную ориентацию
                      'marginLeft' => 900,                 //отступ слева на 900 твипов
                      'marginRight' => 900,               //отступ справа
                      'marginTop' => 900,                //отступ сверху
                      'marginBottom' => 900);          //отступ снизу
 $section = $PHPWord->createSection(sectionStyle);          // создали раздел

Теперь создаем раздел и потом задаем свойства:


$section = $PHPWord->createSection();             // создали раздел
$sectionStyle = $section->getSettings();               // получаем свойства
$sectionStyle->setLandscape();                           // задаем ориентацию , альбомная
$sectionStyle->setMarginLeft(900);                    //отступ слева на 900 твипов
$sectionStyle->setMarginRight(900);                  //отступ справа
$sectionStyle->setMarginTop(900);                   //отступ сверху
$sectionStyle->setMarginBottom(900);              //отступ снизу

Совсем  забыл, есть еще два свойства для разделов, но разработчики не рекомендуют их изменять (а чтобы подкрепить свои ремендации, решили вообще не приводить пример реализации в мануале):
pageSizeW - ширина страницы в твипах.
pageSizeH - высота страницы в твипах.

2 комментария:

  1. Спасибо, все очень понятно описали.

    ОтветитьУдалить
  2. Спасибо большое, полезная тема. А существует ли способ устанавливать отступы красной строки?

    ОтветитьУдалить