| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?phpnamespace PhpOffice\PhpSpreadsheet\Writer\Pdf;use PhpOffice\PhpSpreadsheet\Worksheet\PageSetup;use PhpOffice\PhpSpreadsheet\Writer\Pdf;class Dompdf extends Pdf{    /**     * Gets the implementation of external PDF library that should be used.     *     * @return \Dompdf\Dompdf implementation     */    protected function createExternalWriterInstance()    {        return new \Dompdf\Dompdf();    }    /**     * Save Spreadsheet to file.     *     * @param string $pFilename Name of the file to save as     *     * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception     */    public function save($pFilename)    {        $fileHandle = parent::prepareForSave($pFilename);        //  Default PDF paper size        $paperSize = 'LETTER'; //    Letter    (8.5 in. by 11 in.)        //  Check for paper size and page orientation        if ($this->getSheetIndex() === null) {            $orientation = ($this->spreadsheet->getSheet(0)->getPageSetup()->getOrientation()                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';            $printPaperSize = $this->spreadsheet->getSheet(0)->getPageSetup()->getPaperSize();        } else {            $orientation = ($this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation()                == PageSetup::ORIENTATION_LANDSCAPE) ? 'L' : 'P';            $printPaperSize = $this->spreadsheet->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();        }        $orientation = ($orientation == 'L') ? 'landscape' : 'portrait';        //  Override Page Orientation        if ($this->getOrientation() !== null) {            $orientation = ($this->getOrientation() == PageSetup::ORIENTATION_DEFAULT)                ? PageSetup::ORIENTATION_PORTRAIT                : $this->getOrientation();        }        //  Override Paper Size        if ($this->getPaperSize() !== null) {            $printPaperSize = $this->getPaperSize();        }        if (isset(self::$paperSizes[$printPaperSize])) {            $paperSize = self::$paperSizes[$printPaperSize];        }        //  Create PDF        $pdf = $this->createExternalWriterInstance();        $pdf->setPaper(strtolower($paperSize), $orientation);        $pdf->loadHtml(            $this->generateHTMLHeader(false) .            $this->generateSheetData() .            $this->generateHTMLFooter()        );        $pdf->render();        //  Write to file        fwrite($fileHandle, $pdf->output());        parent::restoreStateAfterSave($fileHandle);    }}
 |