[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 <?php 2 3 /** 4 * PHPExcel_Writer_PDF_Core 5 * 6 * Copyright (c) 2006 - 2015 PHPExcel 7 * 8 * This library is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Lesser General Public 10 * License as published by the Free Software Foundation; either 11 * version 2.1 of the License, or (at your option) any later version. 12 * 13 * This library is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public 19 * License along with this library; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 21 * 22 * @category PHPExcel 23 * @package PHPExcel_Writer_PDF 24 * @copyright Copyright (c) 2006 - 2015 PHPExcel (http://www.codeplex.com/PHPExcel) 25 * @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL 26 * @version ##VERSION##, ##DATE## 27 */ 28 abstract class PHPExcel_Writer_PDF_Core extends PHPExcel_Writer_HTML 29 { 30 /** 31 * Temporary storage directory 32 * 33 * @var string 34 */ 35 protected $tempDir = ''; 36 37 /** 38 * Font 39 * 40 * @var string 41 */ 42 protected $font = 'freesans'; 43 44 /** 45 * Orientation (Over-ride) 46 * 47 * @var string 48 */ 49 protected $orientation; 50 51 /** 52 * Paper size (Over-ride) 53 * 54 * @var int 55 */ 56 protected $paperSize; 57 58 59 /** 60 * Temporary storage for Save Array Return type 61 * 62 * @var string 63 */ 64 private $saveArrayReturnType; 65 66 /** 67 * Paper Sizes xRef List 68 * 69 * @var array 70 */ 71 protected static $paperSizes = array( 72 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER 73 => 'LETTER', // (8.5 in. by 11 in.) 74 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_SMALL 75 => 'LETTER', // (8.5 in. by 11 in.) 76 PHPExcel_Worksheet_PageSetup::PAPERSIZE_TABLOID 77 => array(792.00, 1224.00), // (11 in. by 17 in.) 78 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEDGER 79 => array(1224.00, 792.00), // (17 in. by 11 in.) 80 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEGAL 81 => 'LEGAL', // (8.5 in. by 14 in.) 82 PHPExcel_Worksheet_PageSetup::PAPERSIZE_STATEMENT 83 => array(396.00, 612.00), // (5.5 in. by 8.5 in.) 84 PHPExcel_Worksheet_PageSetup::PAPERSIZE_EXECUTIVE 85 => 'EXECUTIVE', // (7.25 in. by 10.5 in.) 86 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3 87 => 'A3', // (297 mm by 420 mm) 88 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4 89 => 'A4', // (210 mm by 297 mm) 90 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_SMALL 91 => 'A4', // (210 mm by 297 mm) 92 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5 93 => 'A5', // (148 mm by 210 mm) 94 PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4 95 => 'B4', // (250 mm by 353 mm) 96 PHPExcel_Worksheet_PageSetup::PAPERSIZE_B5 97 => 'B5', // (176 mm by 250 mm) 98 PHPExcel_Worksheet_PageSetup::PAPERSIZE_FOLIO 99 => 'FOLIO', // (8.5 in. by 13 in.) 100 PHPExcel_Worksheet_PageSetup::PAPERSIZE_QUARTO 101 => array(609.45, 779.53), // (215 mm by 275 mm) 102 PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_1 103 => array(720.00, 1008.00), // (10 in. by 14 in.) 104 PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_2 105 => array(792.00, 1224.00), // (11 in. by 17 in.) 106 PHPExcel_Worksheet_PageSetup::PAPERSIZE_NOTE 107 => 'LETTER', // (8.5 in. by 11 in.) 108 PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO9_ENVELOPE 109 => array(279.00, 639.00), // (3.875 in. by 8.875 in.) 110 PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO10_ENVELOPE 111 => array(297.00, 684.00), // (4.125 in. by 9.5 in.) 112 PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO11_ENVELOPE 113 => array(324.00, 747.00), // (4.5 in. by 10.375 in.) 114 PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO12_ENVELOPE 115 => array(342.00, 792.00), // (4.75 in. by 11 in.) 116 PHPExcel_Worksheet_PageSetup::PAPERSIZE_NO14_ENVELOPE 117 => array(360.00, 828.00), // (5 in. by 11.5 in.) 118 PHPExcel_Worksheet_PageSetup::PAPERSIZE_C 119 => array(1224.00, 1584.00), // (17 in. by 22 in.) 120 PHPExcel_Worksheet_PageSetup::PAPERSIZE_D 121 => array(1584.00, 2448.00), // (22 in. by 34 in.) 122 PHPExcel_Worksheet_PageSetup::PAPERSIZE_E 123 => array(2448.00, 3168.00), // (34 in. by 44 in.) 124 PHPExcel_Worksheet_PageSetup::PAPERSIZE_DL_ENVELOPE 125 => array(311.81, 623.62), // (110 mm by 220 mm) 126 PHPExcel_Worksheet_PageSetup::PAPERSIZE_C5_ENVELOPE 127 => 'C5', // (162 mm by 229 mm) 128 PHPExcel_Worksheet_PageSetup::PAPERSIZE_C3_ENVELOPE 129 => 'C3', // (324 mm by 458 mm) 130 PHPExcel_Worksheet_PageSetup::PAPERSIZE_C4_ENVELOPE 131 => 'C4', // (229 mm by 324 mm) 132 PHPExcel_Worksheet_PageSetup::PAPERSIZE_C6_ENVELOPE 133 => 'C6', // (114 mm by 162 mm) 134 PHPExcel_Worksheet_PageSetup::PAPERSIZE_C65_ENVELOPE 135 => array(323.15, 649.13), // (114 mm by 229 mm) 136 PHPExcel_Worksheet_PageSetup::PAPERSIZE_B4_ENVELOPE 137 => 'B4', // (250 mm by 353 mm) 138 PHPExcel_Worksheet_PageSetup::PAPERSIZE_B5_ENVELOPE 139 => 'B5', // (176 mm by 250 mm) 140 PHPExcel_Worksheet_PageSetup::PAPERSIZE_B6_ENVELOPE 141 => array(498.90, 354.33), // (176 mm by 125 mm) 142 PHPExcel_Worksheet_PageSetup::PAPERSIZE_ITALY_ENVELOPE 143 => array(311.81, 651.97), // (110 mm by 230 mm) 144 PHPExcel_Worksheet_PageSetup::PAPERSIZE_MONARCH_ENVELOPE 145 => array(279.00, 540.00), // (3.875 in. by 7.5 in.) 146 PHPExcel_Worksheet_PageSetup::PAPERSIZE_6_3_4_ENVELOPE 147 => array(261.00, 468.00), // (3.625 in. by 6.5 in.) 148 PHPExcel_Worksheet_PageSetup::PAPERSIZE_US_STANDARD_FANFOLD 149 => array(1071.00, 792.00), // (14.875 in. by 11 in.) 150 PHPExcel_Worksheet_PageSetup::PAPERSIZE_GERMAN_STANDARD_FANFOLD 151 => array(612.00, 864.00), // (8.5 in. by 12 in.) 152 PHPExcel_Worksheet_PageSetup::PAPERSIZE_GERMAN_LEGAL_FANFOLD 153 => 'FOLIO', // (8.5 in. by 13 in.) 154 PHPExcel_Worksheet_PageSetup::PAPERSIZE_ISO_B4 155 => 'B4', // (250 mm by 353 mm) 156 PHPExcel_Worksheet_PageSetup::PAPERSIZE_JAPANESE_DOUBLE_POSTCARD 157 => array(566.93, 419.53), // (200 mm by 148 mm) 158 PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_1 159 => array(648.00, 792.00), // (9 in. by 11 in.) 160 PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_2 161 => array(720.00, 792.00), // (10 in. by 11 in.) 162 PHPExcel_Worksheet_PageSetup::PAPERSIZE_STANDARD_PAPER_3 163 => array(1080.00, 792.00), // (15 in. by 11 in.) 164 PHPExcel_Worksheet_PageSetup::PAPERSIZE_INVITE_ENVELOPE 165 => array(623.62, 623.62), // (220 mm by 220 mm) 166 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_EXTRA_PAPER 167 => array(667.80, 864.00), // (9.275 in. by 12 in.) 168 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LEGAL_EXTRA_PAPER 169 => array(667.80, 1080.00), // (9.275 in. by 15 in.) 170 PHPExcel_Worksheet_PageSetup::PAPERSIZE_TABLOID_EXTRA_PAPER 171 => array(841.68, 1296.00), // (11.69 in. by 18 in.) 172 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_EXTRA_PAPER 173 => array(668.98, 912.76), // (236 mm by 322 mm) 174 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_TRANSVERSE_PAPER 175 => array(595.80, 792.00), // (8.275 in. by 11 in.) 176 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_TRANSVERSE_PAPER 177 => 'A4', // (210 mm by 297 mm) 178 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_EXTRA_TRANSVERSE_PAPER 179 => array(667.80, 864.00), // (9.275 in. by 12 in.) 180 PHPExcel_Worksheet_PageSetup::PAPERSIZE_SUPERA_SUPERA_A4_PAPER 181 => array(643.46, 1009.13), // (227 mm by 356 mm) 182 PHPExcel_Worksheet_PageSetup::PAPERSIZE_SUPERB_SUPERB_A3_PAPER 183 => array(864.57, 1380.47), // (305 mm by 487 mm) 184 PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER_PLUS_PAPER 185 => array(612.00, 913.68), // (8.5 in. by 12.69 in.) 186 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4_PLUS_PAPER 187 => array(595.28, 935.43), // (210 mm by 330 mm) 188 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5_TRANSVERSE_PAPER 189 => 'A5', // (148 mm by 210 mm) 190 PHPExcel_Worksheet_PageSetup::PAPERSIZE_JIS_B5_TRANSVERSE_PAPER 191 => array(515.91, 728.50), // (182 mm by 257 mm) 192 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_PAPER 193 => array(912.76, 1261.42), // (322 mm by 445 mm) 194 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A5_EXTRA_PAPER 195 => array(493.23, 666.14), // (174 mm by 235 mm) 196 PHPExcel_Worksheet_PageSetup::PAPERSIZE_ISO_B5_EXTRA_PAPER 197 => array(569.76, 782.36), // (201 mm by 276 mm) 198 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A2_PAPER 199 => 'A2', // (420 mm by 594 mm) 200 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_TRANSVERSE_PAPER 201 => 'A3', // (297 mm by 420 mm) 202 PHPExcel_Worksheet_PageSetup::PAPERSIZE_A3_EXTRA_TRANSVERSE_PAPER 203 => array(912.76, 1261.42) // (322 mm by 445 mm) 204 ); 205 206 /** 207 * Create a new PHPExcel_Writer_PDF 208 * 209 * @param PHPExcel $phpExcel PHPExcel object 210 */ 211 public function __construct(PHPExcel $phpExcel) 212 { 213 parent::__construct($phpExcel); 214 $this->setUseInlineCss(true); 215 $this->tempDir = PHPExcel_Shared_File::sys_get_temp_dir(); 216 } 217 218 /** 219 * Get Font 220 * 221 * @return string 222 */ 223 public function getFont() 224 { 225 return $this->font; 226 } 227 228 /** 229 * Set font. Examples: 230 * 'arialunicid0-chinese-simplified' 231 * 'arialunicid0-chinese-traditional' 232 * 'arialunicid0-korean' 233 * 'arialunicid0-japanese' 234 * 235 * @param string $fontName 236 */ 237 public function setFont($fontName) 238 { 239 $this->font = $fontName; 240 return $this; 241 } 242 243 /** 244 * Get Paper Size 245 * 246 * @return int 247 */ 248 public function getPaperSize() 249 { 250 return $this->paperSize; 251 } 252 253 /** 254 * Set Paper Size 255 * 256 * @param string $pValue Paper size 257 * @return PHPExcel_Writer_PDF 258 */ 259 public function setPaperSize($pValue = PHPExcel_Worksheet_PageSetup::PAPERSIZE_LETTER) 260 { 261 $this->paperSize = $pValue; 262 return $this; 263 } 264 265 /** 266 * Get Orientation 267 * 268 * @return string 269 */ 270 public function getOrientation() 271 { 272 return $this->orientation; 273 } 274 275 /** 276 * Set Orientation 277 * 278 * @param string $pValue Page orientation 279 * @return PHPExcel_Writer_PDF 280 */ 281 public function setOrientation($pValue = PHPExcel_Worksheet_PageSetup::ORIENTATION_DEFAULT) 282 { 283 $this->orientation = $pValue; 284 return $this; 285 } 286 287 /** 288 * Get temporary storage directory 289 * 290 * @return string 291 */ 292 public function getTempDir() 293 { 294 return $this->tempDir; 295 } 296 297 /** 298 * Set temporary storage directory 299 * 300 * @param string $pValue Temporary storage directory 301 * @throws PHPExcel_Writer_Exception when directory does not exist 302 * @return PHPExcel_Writer_PDF 303 */ 304 public function setTempDir($pValue = '') 305 { 306 if (is_dir($pValue)) { 307 $this->tempDir = $pValue; 308 } else { 309 throw new PHPExcel_Writer_Exception("Directory does not exist: $pValue"); 310 } 311 return $this; 312 } 313 314 /** 315 * Save PHPExcel to PDF file, pre-save 316 * 317 * @param string $pFilename Name of the file to save as 318 * @throws PHPExcel_Writer_Exception 319 */ 320 protected function prepareForSave($pFilename = null) 321 { 322 // garbage collect 323 $this->phpExcel->garbageCollect(); 324 325 $this->saveArrayReturnType = PHPExcel_Calculation::getArrayReturnType(); 326 PHPExcel_Calculation::setArrayReturnType(PHPExcel_Calculation::RETURN_ARRAY_AS_VALUE); 327 328 // Open file 329 $fileHandle = fopen($pFilename, 'w'); 330 if ($fileHandle === false) { 331 throw new PHPExcel_Writer_Exception("Could not open file $pFilename for writing."); 332 } 333 334 // Set PDF 335 $this->isPdf = true; 336 // Build CSS 337 $this->buildCSS(true); 338 339 return $fileHandle; 340 } 341 342 /** 343 * Save PHPExcel to PDF file, post-save 344 * 345 * @param resource $fileHandle 346 * @throws PHPExcel_Writer_Exception 347 */ 348 protected function restoreStateAfterSave($fileHandle) 349 { 350 // Close file 351 fclose($fileHandle); 352 353 PHPExcel_Calculation::setArrayReturnType($this->saveArrayReturnType); 354 } 355 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |