/** * Set/get minDepth and maxDepth */ public function testSetGetMinMaxDepth() { $toc = new TOC(); $titles = array('Heading 1' => 1, 'Heading 2' => 2, 'Heading 3' => 3, 'Heading 4' => 4); foreach ($titles as $text => $depth) { \PhpOffice\PhpWord\TOC::addTitle($text, $depth); } $this->assertEquals(1, $toc->getMinDepth()); $this->assertEquals(9, $toc->getMaxDepth()); $toc->setMinDepth(2); $toc->setMaxDepth(3); $toc->getTitles(); $this->assertEquals(2, $toc->getMinDepth()); $this->assertEquals(3, $toc->getMaxDepth()); }
/** * Set/get minDepth and maxDepth */ public function testSetGetMinMaxDepth() { $titles = array('Heading 1' => 1, 'Heading 2' => 2, 'Heading 3' => 3, 'Heading 4' => 4); $phpWord = new PhpWord(); foreach ($titles as $text => $depth) { $phpWord->addTitle(new Title(htmlspecialchars($text, ENT_COMPAT, 'UTF-8'), $depth)); } $toc = new TOC(); $toc->setPhpWord($phpWord); $this->assertEquals(1, $toc->getMinDepth()); $this->assertEquals(9, $toc->getMaxDepth()); $toc->setMinDepth(2); $toc->setMaxDepth(3); $toc->getTitles(); $this->assertEquals(2, $toc->getMinDepth()); $this->assertEquals(3, $toc->getMaxDepth()); }
/** * Write TOC Field */ private function writeFieldMark(XMLWriter $xmlWriter, TOCElement $element) { $minDepth = $element->getMinDepth(); $maxDepth = $element->getMaxDepth(); $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:fldChar'); $xmlWriter->writeAttribute('w:fldCharType', 'begin'); $xmlWriter->endElement(); $xmlWriter->endElement(); $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:instrText'); $xmlWriter->writeAttribute('xml:space', 'preserve'); $xmlWriter->writeRaw("TOC \\o {$minDepth}-{$maxDepth} \\h \\z \\u"); $xmlWriter->endElement(); $xmlWriter->endElement(); $xmlWriter->startElement('w:r'); $xmlWriter->startElement('w:fldChar'); $xmlWriter->writeAttribute('w:fldCharType', 'separate'); $xmlWriter->endElement(); $xmlWriter->endElement(); }