includeFile = 'mpdf.php'; } parent::__construct($phpWord); } /** * Gets the implementation of external PDF library that should be used. * * @return Mpdf implementation */ protected function createExternalWriterInstance() { $mPdfClass = $this->getMPdfClassName(); return new $mPdfClass(); } /** * Save PhpWord to file. * * @param string $filename Name of the file to save as */ public function save($filename = null) { $fileHandle = parent::prepareForSave($filename); // PDF settings $paperSize = strtoupper('A4'); $orientation = strtoupper('portrait'); // Create PDF $pdf = $this->createExternalWriterInstance(); $pdf->_setPageSize($paperSize, $orientation); $pdf->addPage($orientation); // Write document properties $phpWord = $this->getPhpWord(); $docProps = $phpWord->getDocInfo(); $pdf->setTitle($docProps->getTitle()); $pdf->setAuthor($docProps->getCreator()); $pdf->setSubject($docProps->getSubject()); $pdf->setKeywords($docProps->getKeywords()); $pdf->setCreator($docProps->getCreator()); $pdf->writeHTML($this->getContent()); // Write to file fwrite($fileHandle, $pdf->output($filename, 'S')); parent::restoreStateAfterSave($fileHandle); } /** * Return classname of MPDF to instantiate * * @codeCoverageIgnore * @return string */ private function getMPdfClassName() { if ($this->includeFile != null) { // MPDF version 5.* return '\mpdf'; } // MPDF version > 6.* return '\Mpdf\Mpdf'; } }