diff -r 5b37998e522e -r 162c1de6545a web/lib/Zend/Pdf/Annotation/FileAttachment.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/Zend/Pdf/Annotation/FileAttachment.php Fri Mar 11 15:05:35 2011 +0100 @@ -0,0 +1,101 @@ +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); + } +}