ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
mPDF.php
Go to the documentation of this file.
1<?php
31if (file_exists($pdfRendererClassFile)) {
32 require_once $pdfRendererClassFile;
33} else {
34 throw new PHPExcel_Writer_Exception('Unable to load PDF Rendering library');
35}
36
45{
51 public function __construct(PHPExcel $phpExcel)
52 {
53 parent::__construct($phpExcel);
54 }
55
62 public function save($pFilename = NULL)
63 {
64 $fileHandle = parent::prepareForSave($pFilename);
65
66 // Default PDF paper size
67 $paperSize = 'LETTER'; // Letter (8.5 in. by 11 in.)
68
69 // Check for paper size and page orientation
70 if (is_null($this->getSheetIndex())) {
71 $orientation = ($this->_phpExcel->getSheet(0)->getPageSetup()->getOrientation()
73 ? 'L'
74 : 'P';
75 $printPaperSize = $this->_phpExcel->getSheet(0)->getPageSetup()->getPaperSize();
76 $printMargins = $this->_phpExcel->getSheet(0)->getPageMargins();
77 } else {
78 $orientation = ($this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getOrientation()
80 ? 'L'
81 : 'P';
82 $printPaperSize = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageSetup()->getPaperSize();
83 $printMargins = $this->_phpExcel->getSheet($this->getSheetIndex())->getPageMargins();
84 }
85 $this->setOrientation($orientation);
86
87 // Override Page Orientation
88 if (!is_null($this->getOrientation())) {
91 : $this->getOrientation();
92 }
93 $orientation = strtoupper($orientation);
94
95 // Override Paper Size
96 if (!is_null($this->getPaperSize())) {
97 $printPaperSize = $this->getPaperSize();
98 }
99
100 if (isset(self::$_paperSizes[$printPaperSize])) {
101 $paperSize = self::$_paperSizes[$printPaperSize];
102 }
103
104 // Create PDF
105 $pdf = new mpdf();
106 $ortmp = $orientation;
107 $pdf->_setPageSize(strtoupper($paperSize), $ortmp);
108 $pdf->DefOrientation = $orientation;
109 $pdf->AddPage($orientation);
110
111 // Document info
112 $pdf->SetTitle($this->_phpExcel->getProperties()->getTitle());
113 $pdf->SetAuthor($this->_phpExcel->getProperties()->getCreator());
114 $pdf->SetSubject($this->_phpExcel->getProperties()->getSubject());
115 $pdf->SetKeywords($this->_phpExcel->getProperties()->getKeywords());
116 $pdf->SetCreator($this->_phpExcel->getProperties()->getCreator());
117
118 $pdf->WriteHTML(
119 $this->generateHTMLHeader(FALSE) .
120 $this->generateSheetData() .
121 $this->generateHTMLFooter()
122 );
123
124 // Write to file
125 fwrite($fileHandle, $pdf->Output('', 'S'));
126
127 parent::restoreStateAfterSave($fileHandle);
128 }
129
130}
An exception for terminatinating execution or to throw for unit testing.
static getPdfRendererPath()
Return the directory path to the PDF Rendering Library that PHPExcel is currently configured to use.
Definition: Settings.php:354
generateHTMLFooter()
Generate HTML footer.
Definition: HTML.php:1004
getSheetIndex()
Get sheet index.
Definition: HTML.php:255
generateHTMLHeader($pIncludeStyles=false)
Generate HTML header.
Definition: HTML.php:305
generateSheetData()
Generate sheet data.
Definition: HTML.php:356
getPaperSize()
Get Paper Size.
Definition: Core.php:256
getOrientation()
Get Orientation.
Definition: Core.php:278
setOrientation($pValue=PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT)
Set Orientation.
Definition: Core.php:289
__construct(PHPExcel $phpExcel)
Create a new PHPExcel_Writer_PDF.
Definition: mPDF.php:51
save($pFilename=NULL)
Save PHPExcel to file.
Definition: mPDF.php:62
$pdf
Definition: example_001.php:31
$pdfRendererClassFile
Require mPDF library.
Definition: mPDF.php:30