$value) { if (substr($key, 0, 1) != '_') { $key = '_' . $key; } self::$_styleTOC->setStyleValue($key, $value); } } if (!is_null($styleFont)) { if (is_array($styleFont)) { self::$_styleFont = new Font(); foreach ($styleFont as $key => $value) { if (substr($key, 0, 1) != '_') { $key = '_' . $key; } self::$_styleFont->setStyleValue($key, $value); } } else { self::$_styleFont = $styleFont; } } $this->_minDepth = $minDepth; $this->_maxDepth = $maxDepth; } /** * Add a Title * * @param string $text * @param int $depth * @return array */ public static function addTitle($text, $depth = 0) { $anchor = '_Toc' . ++self::$_anchor; $bookmarkId = self::$_bookmarkId++; $title = array(); $title['text'] = $text; $title['depth'] = $depth; $title['anchor'] = $anchor; $title['bookmarkId'] = $bookmarkId; self::$_titles[] = $title; return array($anchor, $bookmarkId); } /** * Get all titles * * @return array */ public function getTitles() { $titles = self::$_titles; foreach ($titles as $i => $title) { if ($this->_minDepth > $title['depth']) { unset($titles[$i]); } if (($this->_maxDepth != 0) && ($this->_maxDepth < $title['depth'])) { unset($titles[$i]); } } $titles = array_merge(array(), $titles); return $titles; } /** * Get TOC Style * * @return \PhpOffice\PhpWord\Style\TOC */ public static function getStyleTOC() { return self::$_styleTOC; } /** * Get Font Style * * @return \PhpOffice\PhpWord\Style\Font */ public static function getStyleFont() { return self::$_styleFont; } /** * Get Max Depth * * @return int Max depth of titles */ public function getMaxDepth() { return $this->_maxDepth; } /** * Get Min Depth * * @return int Min depth of titles */ public function getMinDepth() { return $this->_minDepth; } }