PHPWORD Footer Проблема выравнивания текста - PullRequest
0 голосов
/ 04 октября 2019

Я использую phpword для создания файла слова. У меня проблема с нижним колонтитулом. В нижнем колонтитуле у меня есть номера страниц и текст конфиденциального документа. Номера страниц должны быть выровнены по левому краю, а конфиденциальный документ - по правому краю. Я попробовал приведенный ниже скрипт, но и текст, и номера страниц выровнены только по левому краю.

$phpword_object = new PHPWord();
$section = $phpword_object->createSection();

$footer = $section->createFooter();
$footer->addPreserveText('Page {PAGE} of {NUMPAGES}.',     
array(
    'align' => 'end',
    'positioning' => 'absolute'
));

$text = 'Confidential Document';

$footer->addPreserveText( $text,
    array(
        'align' => 'start',
        'positioning' => 'absolute'
    ));

1 Ответ

0 голосов
/ 26 октября 2019

Лично я бы сделал это с помощью простой выровненной по правому краю вкладки. Это гораздо проще понять, как в кодовой форме, так и после того, как перед вами откроется файл docx в Word.

Итак, если у вас есть страница А4 с полем 2,5 см с каждой стороны, это даету вас ширина 16 см, поэтому поместите вкладку @ 16 см, что-то вроде этого (этот код работает - я только что попробовал):

$phpWord->addParagraphStyle('footer_paragraph', array('tabs' => array(new \PhpOffice\PhpWord\Style\Tab('right', \PhpOffice\PhpWord\Shared\Converter::cmToTwip(16)))));

$footer = $section->addFooter();

$footer->addPreserveText('Page {PAGE} of {SECTIONPAGES}' . "\u{0009}Confidential Document", 'your_own_font_style', 'footer_paragraph');

...