You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_Pdf * @subpackage Annotation * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id$ */
/** Internally used classes */ // require_once 'Zend/Pdf/Element.php';
/** * Abstract PDF annotation representation class * * An annotation associates an object such as a note, sound, or movie with a location * on a page of a PDF document, or provides a way to interact with the user by * means of the mouse and keyboard. * * @package Zend_Pdf * @subpackage Annotation * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ abstract class Zend_Pdf_Annotation { /** * Annotation dictionary * * @var Zend_Pdf_Element_Dictionary|Zend_Pdf_Element_Object|Zend_Pdf_Element_Reference */ protected $_annotationDictionary;
/** * Get annotation dictionary * * @internal * @return Zend_Pdf_Element */ public function getResource() { return $this->_annotationDictionary; }
/** * Set bottom edge of the annotation rectangle. * * @param float $bottom * @return Zend_Pdf_Annotation */ public function setBottom($bottom) { $this->_annotationDictionary->Rect->items[1]->touch(); $this->_annotationDictionary->Rect->items[1]->value = $bottom;
return $this; }
/** * Get bottom edge of the annotation rectangle. * * @return float */ public function getBottom() { return $this->_annotationDictionary->Rect->items[1]->value; }
/** * Set top edge of the annotation rectangle. * * @param float $top * @return Zend_Pdf_Annotation */ public function setTop($top) { $this->_annotationDictionary->Rect->items[3]->touch(); $this->_annotationDictionary->Rect->items[3]->value = $top;
return $this; }
/** * Get top edge of the annotation rectangle. * * @return float */ public function getTop() { return $this->_annotationDictionary->Rect->items[3]->value; }
/** * Set right edge of the annotation rectangle. * * @param float $right * @return Zend_Pdf_Annotation */ public function setRight($right) { $this->_annotationDictionary->Rect->items[2]->touch(); $this->_annotationDictionary->Rect->items[2]->value = $right;
return $this; }
/** * Get right edge of the annotation rectangle. * * @return float */ public function getRight() { return $this->_annotationDictionary->Rect->items[2]->value; }
/** * Set left edge of the annotation rectangle. * * @param float $left * @return Zend_Pdf_Annotation */ public function setLeft($left) { $this->_annotationDictionary->Rect->items[0]->touch(); $this->_annotationDictionary->Rect->items[0]->value = $left;
return $this; }
/** * Get left edge of the annotation rectangle. * * @return float */ public function getLeft() { return $this->_annotationDictionary->Rect->items[0]->value; }
/** * Return text to be displayed for the annotation or, if this type of annotation * does not display text, an alternate description of the annotation’s contents * in human-readable form. * * @return string */ public function getText() { if ($this->_annotationDictionary->Contents === null) { return ''; }
return $this->_annotationDictionary->Contents->value; }
/** * Set text to be displayed for the annotation or, if this type of annotation * does not display text, an alternate description of the annotation’s contents * in human-readable form. * * @param string $text * @return Zend_Pdf_Annotation */ public function setText($text) { // require_once 'Zend/Pdf/Element/String.php';
if ($this->_annotationDictionary->Contents === null) { $this->_annotationDictionary->touch(); $this->_annotationDictionary->Contents = new Zend_Pdf_Element_String($text); } else { $this->_annotationDictionary->Contents->touch(); $this->_annotationDictionary->Contents->value = new Zend_Pdf_Element_String($text); }
return $this; }
/** * Annotation object constructor * * @throws Zend_Pdf_Exception */ public function __construct(Zend_Pdf_Element $annotationDictionary) { if ($annotationDictionary->getType() != Zend_Pdf_Element::TYPE_DICTIONARY) { // require_once 'Zend/Pdf/Exception.php';
throw new Zend_Pdf_Exception('Annotation dictionary resource has to be a dictionary.'); }
$this->_annotationDictionary = $annotationDictionary;
if ($this->_annotationDictionary->Type !== null && $this->_annotationDictionary->Type->value != 'Annot') { // require_once 'Zend/Pdf/Exception.php';
throw new Zend_Pdf_Exception('Wrong resource type. \'Annot\' expected.'); }
if ($this->_annotationDictionary->Rect === null) { // require_once 'Zend/Pdf/Exception.php';
throw new Zend_Pdf_Exception('\'Rect\' dictionary entry is required.'); }
if (count($this->_annotationDictionary->Rect->items) != 4 || $this->_annotationDictionary->Rect->items[0]->getType() != Zend_Pdf_Element::TYPE_NUMERIC || $this->_annotationDictionary->Rect->items[1]->getType() != Zend_Pdf_Element::TYPE_NUMERIC || $this->_annotationDictionary->Rect->items[2]->getType() != Zend_Pdf_Element::TYPE_NUMERIC || $this->_annotationDictionary->Rect->items[3]->getType() != Zend_Pdf_Element::TYPE_NUMERIC ) { // require_once 'Zend/Pdf/Exception.php';
throw new Zend_Pdf_Exception('\'Rect\' dictionary entry must be an array of four numeric elements.'); } }
/** * Load Annotation object from a specified resource * * @internal * @param Zend_Pdf_Element $resource * @return Zend_Pdf_Annotation */ public static function load(Zend_Pdf_Element $resource) { /** @todo implementation */ } }
|