source: branches/version-2_5-dev/data/module/fpdf/pdf_context.php @ 20764

Revision 20764, 2.7 KB checked in by nanasess, 13 years ago (diff)

#601 (コピーライトの更新)

  • Property svn:eol-style set to LF
  • Property svn:mime-type set to text/x-httpd-php; charset=UTF-8
Line 
1<?php
2//
3//  FPDI - Version 1.4
4//
5//    Copyright 2004-2010 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
20if (!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            } else if ($this->_mode == 0) {
89                $totalLength = $this->length + $l;
90                do {
91                    $this->buffer .= fread($this->file, $totalLength-$this->length);
92                } while ((($this->length = strlen($this->buffer)) != $totalLength) && !feof($this->file));
93               
94                return true;
95            } else {
96                return false;
97            }
98        }
99    }
100}
Note: See TracBrowser for help on using the repository browser.