You are here

public function PHPExcel_Writer_PDF_DomPDF::save in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php \PHPExcel_Writer_PDF_DomPDF::save()

Save PHPExcel to file

Parameters

string $pFilename Name of the file to save as: @throws PHPExcel_Writer_Exception

Overrides PHPExcel_Writer_HTML::save

File

vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/DomPDF.php, line 62

Class

PHPExcel_Writer_PDF_DomPDF
PHPExcel_Writer_PDF_DomPDF

Code

public function save($pFilename = NULL) {
  $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 (is_null($this
    ->getSheetIndex())) {
    $orientation = $this->_phpExcel
      ->getSheet(0)
      ->getPageSetup()
      ->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
    $printPaperSize = $this->_phpExcel
      ->getSheet(0)
      ->getPageSetup()
      ->getPaperSize();
    $printMargins = $this->_phpExcel
      ->getSheet(0)
      ->getPageMargins();
  }
  else {
    $orientation = $this->_phpExcel
      ->getSheet($this
      ->getSheetIndex())
      ->getPageSetup()
      ->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_LANDSCAPE ? 'L' : 'P';
    $printPaperSize = $this->_phpExcel
      ->getSheet($this
      ->getSheetIndex())
      ->getPageSetup()
      ->getPaperSize();
    $printMargins = $this->_phpExcel
      ->getSheet($this
      ->getSheetIndex())
      ->getPageMargins();
  }
  $orientation = $orientation == 'L' ? 'landscape' : 'portrait';

  //  Override Page Orientation
  if (!is_null($this
    ->getOrientation())) {
    $orientation = $this
      ->getOrientation() == PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT ? PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT : $this
      ->getOrientation();
  }

  //  Override Paper Size
  if (!is_null($this
    ->getPaperSize())) {
    $printPaperSize = $this
      ->getPaperSize();
  }
  if (isset(self::$_paperSizes[$printPaperSize])) {
    $paperSize = self::$_paperSizes[$printPaperSize];
  }

  //  Create PDF
  $pdf = new DOMPDF();
  $pdf
    ->set_paper(strtolower($paperSize), $orientation);
  $pdf
    ->load_html($this
    ->generateHTMLHeader(FALSE) . $this
    ->generateSheetData() . $this
    ->generateHTMLFooter());
  $pdf
    ->render();

  //  Write to file
  fwrite($fileHandle, $pdf
    ->output());
  parent::restoreStateAfterSave($fileHandle);
}