setPhpWord($phpWord); $this->parts = array('Head', 'Body'); foreach ($this->parts as $partName) { $partClass = 'PhpOffice\\PhpWord\\Writer\\HTML\\Part\\' . $partName; if (class_exists($partClass)) { /** @var \PhpOffice\PhpWord\Writer\HTML\Part\AbstractPart $part Type hint */ $part = new $partClass(); $part->setParentWriter($this); $this->writerParts[strtolower($partName)] = $part; } } } /** * Save PhpWord to file * * @param string $filename * @throws \PhpOffice\PhpWord\Exception\Exception */ public function save($filename = null) { $this->setTempDir(sys_get_temp_dir() . '/PHPWordWriter/'); $hFile = fopen($filename, 'w'); if ($hFile !== false) { fwrite($hFile, $this->writeDocument()); fclose($hFile); } else { throw new Exception("Can't open file"); } $this->clearTempDir(); } /** * Get phpWord data * * @return string */ public function writeDocument() { $content = ''; $content .= '' . PHP_EOL; $content .= '' . PHP_EOL; $content .= '' . PHP_EOL; $content .= $this->getWriterPart('Head')->write(); $content .= $this->getWriterPart('Body')->write(); $content .= '' . PHP_EOL; return $content; } /** * Get is PDF * * @return bool */ public function isPdf() { return $this->isPdf; } /** * Get notes * * @return array */ public function getNotes() { return $this->notes; } /** * Add note * * @param int $noteId * @param string $noteMark */ public function addNote($noteId, $noteMark) { $this->notes[$noteId] = $noteMark; } }