diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Pdf/Destination/Explicit.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Pdf/Destination/Explicit.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,122 @@ +getType() != Zend_Pdf_Element::TYPE_ARRAY) { + require_once 'Zend/Pdf/Exception.php'; + throw new Zend_Pdf_Exception('Explicit destination resource Array must be a direct or an indirect array object.'); + } + + $this->_destinationArray = $destinationArray; + + switch (count($this->_destinationArray->items)) { + case 0: + require_once 'Zend/Pdf/Exception.php'; + throw new Zend_Pdf_Exception('Destination array must contain a page reference.'); + break; + + case 1: + require_once 'Zend/Pdf/Exception.php'; + throw new Zend_Pdf_Exception('Destination array must contain a destination type name.'); + break; + + default: + // Do nothing + break; + } + + switch ($this->_destinationArray->items[0]->getType()) { + case Zend_Pdf_Element::TYPE_NUMERIC: + $this->_isRemote = true; + break; + + case Zend_Pdf_Element::TYPE_DICTIONARY: + $this->_isRemote = false; + break; + + default: + require_once 'Zend/Pdf/Exception.php'; + throw new Zend_Pdf_Exception('Destination target must be a page number or page dictionary object.'); + break; + } + } + + /** + * Returns true if it's a remote destination + * + * @return boolean + */ + public function isRemote() + { + return $this->_isRemote; + } + + /** + * Get resource + * + * @internal + * @return Zend_Pdf_Element + */ + public function getResource() + { + return $this->_destinationArray; + } +}