0) ) { throw new Zend_Pdf_Exception('Object number must be positive integer.'); } if ( !(is_integer($genNum) && $genNum >= 0) ) { throw new Zend_Pdf_Exception('Generation number must be non-negative integer.'); } $this->_value = $val; $this->_objNum = $objNum; $this->_genNum = $genNum; $this->_factory = $factory; $this->setParentObject($this); $factory->registerObject($this, $objNum . ' ' . $genNum); } /** * Check, that object is generated by specified factory * * @return Zend_Pdf_ElementFactory */ public function getFactory() { return $this->_factory; } /** * Return type of the element. * * @return integer */ public function getType() { return $this->_value->getType(); } /** * Get object number * * @return integer */ public function getObjNum() { return $this->_objNum; } /** * Get generation number * * @return integer */ public function getGenNum() { return $this->_genNum; } /** * Return reference to the object * * @param Zend_Pdf_Factory $factory * @return string */ public function toString($factory = null) { if ($factory === null) { $shift = 0; } else { $shift = $factory->getEnumerationShift($this->_factory); } return $this->_objNum + $shift . ' ' . $this->_genNum . ' R'; } /** * Dump object to a string to save within PDF file. * * $factory parameter defines operation context. * * @param Zend_Pdf_ElementFactory $factory * @return string */ public function dump(Zend_Pdf_ElementFactory $factory) { $shift = $factory->getEnumerationShift($this->_factory); return $this->_objNum + $shift . " " . $this->_genNum . " obj \n" . $this->_value->toString($factory) . "\n" . "endobj\n"; } /** * Get handler * * @param string $property * @return mixed */ public function __get($property) { return $this->_value->$property; } /** * Set handler * * @param string $property * @param mixed $value */ public function __set($property, $value) { $this->_value->$property = $value; } /** * Call handler * * @param string $method * @param array $args * @return mixed */ public function __call($method, $args) { return call_user_func_array(array($this->_value, $method), $args); } /** * Mark object as modified, to include it into new PDF file segment */ public function touch() { $this->_factory->markAsModified($this); } /** * Return object, which can be used to identify object and its references identity * * @return Zend_Pdf_Element_Object */ public function getObject() { return $this; } /** * Clean up resources, used by object */ public function cleanUp() { $this->_value = null; } /** * Convert PDF element to PHP type. * * @return mixed */ public function toPhp() { return $this->_value->toPhp(); } }