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.'); } if ($annotationDictionary->Subtype === null || $annotationDictionary->Subtype->getType() != Zend_Pdf_Element::TYPE_NAME || $annotationDictionary->Subtype->value != 'Text') { require_once 'Zend/Pdf/Exception.php'; throw new Zend_Pdf_Exception('Subtype => Text entry is requires'); } parent::__construct($annotationDictionary); } /** * Create link annotation object * * @param float $x1 * @param float $y1 * @param float $x2 * @param float $y2 * @param string $text * @return Zend_Pdf_Annotation_Text */ public static function create($x1, $y1, $x2, $y2, $text) { $annotationDictionary = new Zend_Pdf_Element_Dictionary(); $annotationDictionary->Type = new Zend_Pdf_Element_Name('Annot'); $annotationDictionary->Subtype = new Zend_Pdf_Element_Name('Text'); $rectangle = new Zend_Pdf_Element_Array(); $rectangle->items[] = new Zend_Pdf_Element_Numeric($x1); $rectangle->items[] = new Zend_Pdf_Element_Numeric($y1); $rectangle->items[] = new Zend_Pdf_Element_Numeric($x2); $rectangle->items[] = new Zend_Pdf_Element_Numeric($y2); $annotationDictionary->Rect = $rectangle; $annotationDictionary->Contents = new Zend_Pdf_Element_String($text); return new Zend_Pdf_Annotation_Text($annotationDictionary); } }