如何使用PHPWord编辑文档的页眉/页脚?

时间:2015-06-09 09:50:14

标签: php phpword

我正在使用PHPWord来创建文档。我需要做的是编辑现有docx / odt文档的页眉/页脚内容。将内容添加到文档并不是很困难。但我花了一整天的时间在互联网上寻找解决方案。以下是我只能通过其向现有页眉/页脚内容添加内容的代码:

$source = "DumpFiles/".$_FILES['file']['name'];
    $fileName = $_FILES['file']['name'];
    $phpWord = \PhpOffice\PhpWord\IOFactory::load($source);
    echo "File Loaded";

    // Get Sections from the imported document...
    $sections = $phpWord->getSections();
    $section = $sections[0];

    // Adding Header and Footer Content
    if(isset($_POST['headerContent']) && $_POST['headerContent']!=null)
    {
        $headert = $section->createHeader();
        $table = $headert->addTable();
        $table->addRow();
        $table->addCell(4500)->addText($_POST['headerContent']);
    }
    if(isset($_POST['footerContent']) && $_POST['footerContent'])
    {
        $footervar = $section->createFooter();
        $table = $footervar->addTable();
        $table->addRow();
        $table->addCell(4500)->addText($_POST['footerContent']);
    }

我理解直接使用global变量是一种不好的做法。 :-P

我会在现有代码生效后纠正代码中的这些差异。

非常感谢带有示例的解决方案。

2 个答案:

答案 0 :(得分:3)

另一种方式是:

$PHPWord = new PHPWord();
$section = $PHPWord->createSection();
$header = $section->createHeader();
$header->addImage('images/header.png');
$footer = $section->createFooter();
$footer->addImage('images/footer.png');

答案 1 :(得分:2)

您可以通过以下方式访问现有标题内容(简化为缩短,即缺少所有存在和类型检查):

$headers = $section->getHeaders();
$header1 = $headers[1]; // note that the first index is 1 here (not 0)

$elements = $header1->getElements();
$element1 = $elements[0]; // and first index is 0 here normally

// for example manipulating simple text information ($element1 is instance of Text object)
$element1->setText("This is my text addition - old part: " . $element1->getText());

访问页脚数据非常相似:

$footers = $section->getFooters();