You are here

public function PHPExcel_Writer_PDF_mPDF::save in Loft Data Grids 7.2

Same name and namespace in other branches
  1. 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Writer/PDF/mPDF.php \PHPExcel_Writer_PDF_mPDF::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/mPDF.php, line 62

Class

PHPExcel_Writer_PDF_mPDF
PHPExcel_Writer_PDF_mPDF

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();
  }
  $this
    ->setOrientation($orientation);

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

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

  //  Create PDF
  $pdf = new mpdf();
  $ortmp = $orientation;
  $pdf
    ->_setPageSize(strtoupper($paperSize), $ortmp);
  $pdf->DefOrientation = $orientation;
  $pdf
    ->AddPage($orientation);

  //  Document info
  $pdf
    ->SetTitle($this->_phpExcel
    ->getProperties()
    ->getTitle());
  $pdf
    ->SetAuthor($this->_phpExcel
    ->getProperties()
    ->getCreator());
  $pdf
    ->SetSubject($this->_phpExcel
    ->getProperties()
    ->getSubject());
  $pdf
    ->SetKeywords($this->_phpExcel
    ->getProperties()
    ->getKeywords());
  $pdf
    ->SetCreator($this->_phpExcel
    ->getProperties()
    ->getCreator());
  $pdf
    ->WriteHTML($this
    ->generateHTMLHeader(FALSE) . $this
    ->generateSheetData() . $this
    ->generateHTMLFooter());

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