| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- /**
- * This file is part of PHPWord - A pure PHP library for reading and writing
- * word processing documents.
- *
- * PHPWord is free software distributed under the terms of the GNU Lesser
- * General Public License version 3 as published by the Free Software Foundation.
- *
- * For the full copyright and license information, please read the LICENSE
- * file that was distributed with this source code. For the full list of
- * contributors, visit https://github.com/PHPOffice/PHPWord/contributors.
- *
- * @see https://github.com/PHPOffice/PhpWord
- * @copyright 2010-2018 PHPWord contributors
- * @license http://www.gnu.org/licenses/lgpl.txt LGPL version 3
- */
- namespace PhpOffice\PhpWord\Writer\PDF;
- use Dompdf\Dompdf as DompdfLib;
- use PhpOffice\PhpWord\Writer\WriterInterface;
- /**
- * DomPDF writer
- *
- * @see https://github.com/dompdf/dompdf
- * @since 0.10.0
- */
- class DomPDF extends AbstractRenderer implements WriterInterface
- {
- /**
- * Name of renderer include file
- *
- * @var string
- */
- protected $includeFile = null;
- /**
- * Gets the implementation of external PDF library that should be used.
- *
- * @return Dompdf implementation
- */
- protected function createExternalWriterInstance()
- {
- return new DompdfLib();
- }
- /**
- * 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 = 'A4';
- $orientation = 'portrait';
- // Create PDF
- $pdf = $this->createExternalWriterInstance();
- $pdf->setPaper(strtolower($paperSize), $orientation);
- $pdf->loadHtml(str_replace(PHP_EOL, '', $this->getContent()));
- $pdf->render();
- // Write to file
- fwrite($fileHandle, $pdf->output());
- parent::restoreStateAfterSave($fileHandle);
- }
- }
|