В этом посте разберем: что такое раздел в 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 - высота страницы в твипах.
Спасибо, все очень понятно описали.
ОтветитьУдалитьСпасибо большое, полезная тема. А существует ли способ устанавливать отступы красной строки?
ОтветитьУдалить