PHPWORD页脚文本对齐问题

时间:2019-10-04 08:00:45

标签: php phpword

我正在使用phpword生成一个word文件。页脚有问题。在页脚中,我有页码和文本机密文档。页码必须左对齐,机密文档必须右对齐。我尝试了以下脚本,但文本和页码都只左对齐。

$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'
    ));

2 个答案:

答案 0 :(得分:0)

就个人而言,我将使用一个简单的右对齐标签来做到这一点。无论是代码形式还是在您面前的Word中打开docx文件时,它都更容易理解。

因此,假设您在A4页面的两边都留有2.5cm的边距,那么该区域的宽度为16cm,因此将标签页设置为16cm,如下所示(此代码有效-我刚刚尝试过):

$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');

答案 1 :(得分:0)

要解决此 PHPWord页脚文本对齐问题,您可以使用带有行和单元格的表以左右对齐的方式在一行中显示文本和页码。 要在左对齐上显示文本,在右对齐上显示页码,我已经应用了此解决方案,并且对我有效。

$section = $phpWord->addSection();
$footer = $section->addFooter();
$table = $section->addTable();
$table->addRow();

$cell = $table->addCell(4500);
$textrun = $cell->addTextRun();
$textrun->addText('left text', array('size' => 11), array('align'=>'left'));
$table->addCell(4500)->addPreserveText('{PAGE}', array('size' => 11), array('align'=>'right'));