[ Index ]

PHP Cross Reference of moodle-2.8

title

Body

[close]

/mod/assign/feedback/editpdf/fpdi/ -> pdf_context.php (source)

   1  <?php
   2  //

   3  //  FPDI - Version 1.4.4

   4  //

   5  //    Copyright 2004-2013 Setasign - Jan Slabon

   6  //

   7  //  Licensed under the Apache License, Version 2.0 (the "License");

   8  //  you may not use this file except in compliance with the License.

   9  //  You may obtain a copy of the License at

  10  //

  11  //      http://www.apache.org/licenses/LICENSE-2.0

  12  //

  13  //  Unless required by applicable law or agreed to in writing, software

  14  //  distributed under the License is distributed on an "AS IS" BASIS,

  15  //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  16  //  See the License for the specific language governing permissions and

  17  //  limitations under the License.

  18  //

  19  
  20  if (!class_exists('pdf_context', false)) {
  21      
  22      class pdf_context {
  23      
  24          /**

  25           * Modi

  26           *

  27           * @var integer 0 = file | 1 = string

  28           */
  29          var $_mode = 0;
  30          
  31          var $file;
  32          var $buffer;
  33          var $offset;
  34          var $length;
  35      
  36          var $stack;
  37      
  38          // Constructor

  39      
  40      	function pdf_context(&$f) {
  41              $this->file =& $f;
  42              if (is_string($this->file))
  43                  $this->_mode = 1;
  44              $this->reset();
  45          }
  46      
  47          // Optionally move the file

  48          // pointer to a new location

  49          // and reset the buffered data

  50      
  51      	function reset($pos = null, $l = 100) {
  52              if ($this->_mode == 0) {
  53                  if (!is_null ($pos)) {
  54                      fseek ($this->file, $pos);
  55                  }
  56          
  57                  $this->buffer = $l > 0 ? fread($this->file, $l) : '';
  58                  $this->length = strlen($this->buffer);
  59                  if ($this->length < $l)
  60                      $this->increase_length($l - $this->length);
  61              } else {
  62                  $this->buffer = $this->file;
  63                  $this->length = strlen($this->buffer);
  64              }
  65              $this->offset = 0;
  66              $this->stack = array();
  67          }
  68      
  69          // Make sure that there is at least one

  70          // character beyond the current offset in

  71          // the buffer to prevent the tokenizer

  72          // from attempting to access data that does

  73          // not exist

  74      
  75      	function ensure_content() {
  76              if ($this->offset >= $this->length - 1) {
  77                  return $this->increase_length();
  78              } else {
  79                  return true;
  80              }
  81          }
  82      
  83          // Forcefully read more data into the buffer

  84      
  85      	function increase_length($l = 100) {
  86              if ($this->_mode == 0 && feof($this->file)) {
  87                  return false;
  88              } elseif ($this->_mode == 0) {
  89                  $totalLength = $this->length + $l;
  90                  do {
  91                      $toRead = $totalLength - $this->length;
  92                      if ($toRead < 1)
  93                          break;
  94                  
  95                      $this->buffer .= fread($this->file, $toRead);
  96                  } while ((($this->length = strlen($this->buffer)) != $totalLength) && !feof($this->file));
  97                  
  98                  return true;
  99              } else {
 100                  return false;
 101              }
 102          }
 103      }
 104  }


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