[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/lib/phpexcel/PHPExcel/Worksheet/ -> HeaderFooter.php (source)

   1  <?php
   2  /**
   3   * PHPExcel
   4   *
   5   * Copyright (c) 2006 - 2014 PHPExcel
   6   *
   7   * This library is free software; you can redistribute it and/or
   8   * modify it under the terms of the GNU Lesser General Public
   9   * License as published by the Free Software Foundation; either
  10   * version 2.1 of the License, or (at your option) any later version.
  11   *
  12   * This library is distributed in the hope that it will be useful,
  13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15   * Lesser General Public License for more details.
  16   *
  17   * You should have received a copy of the GNU Lesser General Public
  18   * License along with this library; if not, write to the Free Software
  19   * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  20   *
  21   * @category   PHPExcel
  22   * @package    PHPExcel_Worksheet
  23   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  24   * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL
  25   * @version    ##VERSION##, ##DATE##
  26   */
  27  
  28  
  29  /**
  30   * PHPExcel_Worksheet_HeaderFooter
  31   *
  32   * <code>
  33   * Header/Footer Formatting Syntax taken from Office Open XML Part 4 - Markup Language Reference, page 1970:
  34   *
  35   * There are a number of formatting codes that can be written inline with the actual header / footer text, which
  36   * affect the formatting in the header or footer.
  37   *
  38   * Example: This example shows the text "Center Bold Header" on the first line (center section), and the date on
  39   * the second line (center section).
  40   *         &CCenter &"-,Bold"Bold&"-,Regular"Header_x000A_&D
  41   *
  42   * General Rules:
  43   * There is no required order in which these codes must appear.
  44   *
  45   * The first occurrence of the following codes turns the formatting ON, the second occurrence turns it OFF again:
  46   * - strikethrough
  47   * - superscript
  48   * - subscript
  49   * Superscript and subscript cannot both be ON at same time. Whichever comes first wins and the other is ignored,
  50   * while the first is ON.
  51   * &L - code for "left section" (there are three header / footer locations, "left", "center", and "right"). When
  52   * two or more occurrences of this section marker exist, the contents from all markers are concatenated, in the
  53   * order of appearance, and placed into the left section.
  54   * &P - code for "current page #"
  55   * &N - code for "total pages"
  56   * &font size - code for "text font size", where font size is a font size in points.
  57   * &K - code for "text font color"
  58   * RGB Color is specified as RRGGBB
  59   * Theme Color is specifed as TTSNN where TT is the theme color Id, S is either "+" or "-" of the tint/shade
  60   * value, NN is the tint/shade value.
  61   * &S - code for "text strikethrough" on / off
  62   * &X - code for "text super script" on / off
  63   * &Y - code for "text subscript" on / off
  64   * &C - code for "center section". When two or more occurrences of this section marker exist, the contents
  65   * from all markers are concatenated, in the order of appearance, and placed into the center section.
  66   *
  67   * &D - code for "date"
  68   * &T - code for "time"
  69   * &G - code for "picture as background"
  70   * &U - code for "text single underline"
  71   * &E - code for "double underline"
  72   * &R - code for "right section". When two or more occurrences of this section marker exist, the contents
  73   * from all markers are concatenated, in the order of appearance, and placed into the right section.
  74   * &Z - code for "this workbook's file path"
  75   * &F - code for "this workbook's file name"
  76   * &A - code for "sheet tab name"
  77   * &+ - code for add to page #.
  78   * &- - code for subtract from page #.
  79   * &"font name,font type" - code for "text font name" and "text font type", where font name and font type
  80   * are strings specifying the name and type of the font, separated by a comma. When a hyphen appears in font
  81   * name, it means "none specified". Both of font name and font type can be localized values.
  82   * &"-,Bold" - code for "bold font style"
  83   * &B - also means "bold font style".
  84   * &"-,Regular" - code for "regular font style"
  85   * &"-,Italic" - code for "italic font style"
  86   * &I - also means "italic font style"
  87   * &"-,Bold Italic" code for "bold italic font style"
  88   * &O - code for "outline style"
  89   * &H - code for "shadow style"
  90   * </code>
  91   *
  92   * @category   PHPExcel
  93   * @package    PHPExcel_Worksheet
  94   * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
  95   */
  96  class PHPExcel_Worksheet_HeaderFooter
  97  {
  98      /* Header/footer image location */
  99      const IMAGE_HEADER_LEFT                            = 'LH';
 100      const IMAGE_HEADER_CENTER                        = 'CH';
 101      const IMAGE_HEADER_RIGHT                        = 'RH';
 102      const IMAGE_FOOTER_LEFT                            = 'LF';
 103      const IMAGE_FOOTER_CENTER                        = 'CF';
 104      const IMAGE_FOOTER_RIGHT                        = 'RF';
 105  
 106      /**
 107       * OddHeader
 108       *
 109       * @var string
 110       */
 111      private $_oddHeader            = '';
 112  
 113      /**
 114       * OddFooter
 115       *
 116       * @var string
 117       */
 118      private $_oddFooter            = '';
 119  
 120      /**
 121       * EvenHeader
 122       *
 123       * @var string
 124       */
 125      private $_evenHeader        = '';
 126  
 127      /**
 128       * EvenFooter
 129       *
 130       * @var string
 131       */
 132      private $_evenFooter        = '';
 133  
 134      /**
 135       * FirstHeader
 136       *
 137       * @var string
 138       */
 139      private $_firstHeader        = '';
 140  
 141      /**
 142       * FirstFooter
 143       *
 144       * @var string
 145       */
 146      private $_firstFooter        = '';
 147  
 148      /**
 149       * Different header for Odd/Even, defaults to false
 150       *
 151       * @var boolean
 152       */
 153      private $_differentOddEven    = false;
 154  
 155      /**
 156       * Different header for first page, defaults to false
 157       *
 158       * @var boolean
 159       */
 160      private $_differentFirst    = false;
 161  
 162      /**
 163       * Scale with document, defaults to true
 164       *
 165       * @var boolean
 166       */
 167      private $_scaleWithDocument    = true;
 168  
 169      /**
 170       * Align with margins, defaults to true
 171       *
 172       * @var boolean
 173       */
 174      private $_alignWithMargins    = true;
 175  
 176      /**
 177       * Header/footer images
 178       *
 179       * @var PHPExcel_Worksheet_HeaderFooterDrawing[]
 180       */
 181      private $_headerFooterImages = array();
 182  
 183      /**
 184       * Create a new PHPExcel_Worksheet_HeaderFooter
 185       */
 186      public function __construct()
 187      {
 188      }
 189  
 190      /**
 191       * Get OddHeader
 192       *
 193       * @return string
 194       */
 195      public function getOddHeader() {
 196          return $this->_oddHeader;
 197      }
 198  
 199      /**
 200       * Set OddHeader
 201       *
 202       * @param string $pValue
 203       * @return PHPExcel_Worksheet_HeaderFooter
 204       */
 205      public function setOddHeader($pValue) {
 206          $this->_oddHeader = $pValue;
 207          return $this;
 208      }
 209  
 210      /**
 211       * Get OddFooter
 212       *
 213       * @return string
 214       */
 215      public function getOddFooter() {
 216          return $this->_oddFooter;
 217      }
 218  
 219      /**
 220       * Set OddFooter
 221       *
 222       * @param string $pValue
 223       * @return PHPExcel_Worksheet_HeaderFooter
 224       */
 225      public function setOddFooter($pValue) {
 226          $this->_oddFooter = $pValue;
 227          return $this;
 228      }
 229  
 230      /**
 231       * Get EvenHeader
 232       *
 233       * @return string
 234       */
 235      public function getEvenHeader() {
 236          return $this->_evenHeader;
 237      }
 238  
 239      /**
 240       * Set EvenHeader
 241       *
 242       * @param string $pValue
 243       * @return PHPExcel_Worksheet_HeaderFooter
 244       */
 245      public function setEvenHeader($pValue) {
 246          $this->_evenHeader = $pValue;
 247          return $this;
 248      }
 249  
 250      /**
 251       * Get EvenFooter
 252       *
 253       * @return string
 254       */
 255      public function getEvenFooter() {
 256          return $this->_evenFooter;
 257      }
 258  
 259      /**
 260       * Set EvenFooter
 261       *
 262       * @param string $pValue
 263       * @return PHPExcel_Worksheet_HeaderFooter
 264       */
 265      public function setEvenFooter($pValue) {
 266          $this->_evenFooter = $pValue;
 267          return $this;
 268      }
 269  
 270      /**
 271       * Get FirstHeader
 272       *
 273       * @return string
 274       */
 275      public function getFirstHeader() {
 276          return $this->_firstHeader;
 277      }
 278  
 279      /**
 280       * Set FirstHeader
 281       *
 282       * @param string $pValue
 283       * @return PHPExcel_Worksheet_HeaderFooter
 284       */
 285      public function setFirstHeader($pValue) {
 286          $this->_firstHeader = $pValue;
 287          return $this;
 288      }
 289  
 290      /**
 291       * Get FirstFooter
 292       *
 293       * @return string
 294       */
 295      public function getFirstFooter() {
 296          return $this->_firstFooter;
 297      }
 298  
 299      /**
 300       * Set FirstFooter
 301       *
 302       * @param string $pValue
 303       * @return PHPExcel_Worksheet_HeaderFooter
 304       */
 305      public function setFirstFooter($pValue) {
 306          $this->_firstFooter = $pValue;
 307          return $this;
 308      }
 309  
 310      /**
 311       * Get DifferentOddEven
 312       *
 313       * @return boolean
 314       */
 315      public function getDifferentOddEven() {
 316          return $this->_differentOddEven;
 317      }
 318  
 319      /**
 320       * Set DifferentOddEven
 321       *
 322       * @param boolean $pValue
 323       * @return PHPExcel_Worksheet_HeaderFooter
 324       */
 325      public function setDifferentOddEven($pValue = false) {
 326          $this->_differentOddEven = $pValue;
 327          return $this;
 328      }
 329  
 330      /**
 331       * Get DifferentFirst
 332       *
 333       * @return boolean
 334       */
 335      public function getDifferentFirst() {
 336          return $this->_differentFirst;
 337      }
 338  
 339      /**
 340       * Set DifferentFirst
 341       *
 342       * @param boolean $pValue
 343       * @return PHPExcel_Worksheet_HeaderFooter
 344       */
 345      public function setDifferentFirst($pValue = false) {
 346          $this->_differentFirst = $pValue;
 347          return $this;
 348      }
 349  
 350      /**
 351       * Get ScaleWithDocument
 352       *
 353       * @return boolean
 354       */
 355      public function getScaleWithDocument() {
 356          return $this->_scaleWithDocument;
 357      }
 358  
 359      /**
 360       * Set ScaleWithDocument
 361       *
 362       * @param boolean $pValue
 363       * @return PHPExcel_Worksheet_HeaderFooter
 364       */
 365      public function setScaleWithDocument($pValue = true) {
 366          $this->_scaleWithDocument = $pValue;
 367          return $this;
 368      }
 369  
 370      /**
 371       * Get AlignWithMargins
 372       *
 373       * @return boolean
 374       */
 375      public function getAlignWithMargins() {
 376          return $this->_alignWithMargins;
 377      }
 378  
 379      /**
 380       * Set AlignWithMargins
 381       *
 382       * @param boolean $pValue
 383       * @return PHPExcel_Worksheet_HeaderFooter
 384       */
 385      public function setAlignWithMargins($pValue = true) {
 386          $this->_alignWithMargins = $pValue;
 387          return $this;
 388      }
 389  
 390      /**
 391       * Add header/footer image
 392       *
 393       * @param PHPExcel_Worksheet_HeaderFooterDrawing $image
 394       * @param string $location
 395       * @throws PHPExcel_Exception
 396       * @return PHPExcel_Worksheet_HeaderFooter
 397       */
 398      public function addImage(PHPExcel_Worksheet_HeaderFooterDrawing $image = null, $location = self::IMAGE_HEADER_LEFT) {
 399          $this->_headerFooterImages[$location] = $image;
 400          return $this;
 401      }
 402  
 403      /**
 404       * Remove header/footer image
 405       *
 406       * @param string $location
 407       * @throws PHPExcel_Exception
 408       * @return PHPExcel_Worksheet_HeaderFooter
 409       */
 410      public function removeImage($location = self::IMAGE_HEADER_LEFT) {
 411          if (isset($this->_headerFooterImages[$location])) {
 412              unset($this->_headerFooterImages[$location]);
 413          }
 414          return $this;
 415      }
 416  
 417      /**
 418       * Set header/footer images
 419       *
 420       * @param PHPExcel_Worksheet_HeaderFooterDrawing[] $images
 421       * @throws PHPExcel_Exception
 422       * @return PHPExcel_Worksheet_HeaderFooter
 423       */
 424      public function setImages($images) {
 425          if (!is_array($images)) {
 426              throw new PHPExcel_Exception('Invalid parameter!');
 427          }
 428  
 429          $this->_headerFooterImages = $images;
 430          return $this;
 431      }
 432  
 433      /**
 434       * Get header/footer images
 435       *
 436       * @return PHPExcel_Worksheet_HeaderFooterDrawing[]
 437       */
 438      public function getImages() {
 439          // Sort array
 440          $images = array();
 441          if (isset($this->_headerFooterImages[self::IMAGE_HEADER_LEFT]))     $images[self::IMAGE_HEADER_LEFT] =         $this->_headerFooterImages[self::IMAGE_HEADER_LEFT];
 442          if (isset($this->_headerFooterImages[self::IMAGE_HEADER_CENTER]))     $images[self::IMAGE_HEADER_CENTER] =     $this->_headerFooterImages[self::IMAGE_HEADER_CENTER];
 443          if (isset($this->_headerFooterImages[self::IMAGE_HEADER_RIGHT]))     $images[self::IMAGE_HEADER_RIGHT] =     $this->_headerFooterImages[self::IMAGE_HEADER_RIGHT];
 444          if (isset($this->_headerFooterImages[self::IMAGE_FOOTER_LEFT]))     $images[self::IMAGE_FOOTER_LEFT] =         $this->_headerFooterImages[self::IMAGE_FOOTER_LEFT];
 445          if (isset($this->_headerFooterImages[self::IMAGE_FOOTER_CENTER]))     $images[self::IMAGE_FOOTER_CENTER] =     $this->_headerFooterImages[self::IMAGE_FOOTER_CENTER];
 446          if (isset($this->_headerFooterImages[self::IMAGE_FOOTER_RIGHT]))     $images[self::IMAGE_FOOTER_RIGHT] =     $this->_headerFooterImages[self::IMAGE_FOOTER_RIGHT];
 447          $this->_headerFooterImages = $images;
 448  
 449          return $this->_headerFooterImages;
 450      }
 451  
 452      /**
 453       * Implement PHP __clone to create a deep clone, not just a shallow copy.
 454       */
 455  	public function __clone() {
 456          $vars = get_object_vars($this);
 457          foreach ($vars as $key => $value) {
 458              if (is_object($value)) {
 459                  $this->$key = clone $value;
 460              } else {
 461                  $this->$key = $value;
 462              }
 463          }
 464      }
 465  }


Generated: Fri Nov 28 20:29:05 2014 Cross-referenced by PHPXref 0.7.1