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 != 'FileAttachment') { require_once 'Zend/Pdf/Exception.php'; throw new Zend_Pdf_Exception('Subtype => FileAttachment entry is requires'); } parent::__construct($annotationDictionary); } /** * Create link annotation object * * @param float $x1 * @param float $y1 * @param float $x2 * @param float $y2 * @param string $fileSpecification * @return Zend_Pdf_Annotation_FileAttachment */ public static function create($x1, $y1, $x2, $y2, $fileSpecification) { $annotationDictionary = new Zend_Pdf_Element_Dictionary(); $annotationDictionary->Type = new Zend_Pdf_Element_Name('Annot'); $annotationDictionary->Subtype = new Zend_Pdf_Element_Name('FileAttachment'); $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; $fsDictionary = new Zend_Pdf_Element_Dictionary(); $fsDictionary->Type = new Zend_Pdf_Element_Name('Filespec'); $fsDictionary->F = new Zend_Pdf_Element_String($fileSpecification); $annotationDictionary->FS = $fsDictionary; return new Zend_Pdf_Annotation_FileAttachment($annotationDictionary); } }