array(), 'XObject' => array(), 'ExtGState' => array()); /** * Object constructor * * @param float $width * @param float $height */ public function __construct($width, $height) { $this->_width = $width; $this->_height = $height; } /** * Add procedure set to the canvas description * * @param string $procSetName */ protected function _addProcSet($procSetName) { $this->_procset[$procSetName] = 1; } /** * Attach resource to the canvas * * Method returns a name of the resource which can be used * as a resource reference within drawing instructions stream * Allowed types: 'ExtGState', 'ColorSpace', 'Pattern', 'Shading', * 'XObject', 'Font', 'Properties' * * @param string $type * @param Zend_Pdf_Resource $resource * @return string */ protected function _attachResource($type, Zend_Pdf_Resource $resource) { // Check, that resource is already attached to resource set. $resObject = $resource->getResource(); foreach ($this->_resources[$type] as $resName => $collectedResObject) { if ($collectedResObject === $resObject) { return $resName; } } $idCounter = 1; do { $newResName = $type[0] . $idCounter++; } while (isset($this->_resources[$type][$newResName])); $this->_resources[$type][$newResName] = $resObject; return $newResName; } /** * Returns dictionaries of used resources. * * Used for canvas implementations interoperability * * Structure of the returned array: * array( * => array( * => , * => , * => , * ... * ), * => array( * => , * => , * => , * ... * ), * ... * 'ProcSet' => array() * ) * * where ProcSet array is a list of used procedure sets names (strings). * Allowed procedure set names: 'PDF', 'Text', 'ImageB', 'ImageC', 'ImageI' * * @internal * @return array */ public function getResources() { $this->_resources['ProcSet'] = array_keys($this->_procSet); return $this->_resources; } /** * Get drawing instructions stream * * It has to be returned as a PDF stream object to make it reusable. * * @internal * @returns Zend_Pdf_Resource_ContentStream */ public function getContents() { /** @todo implementation */ } /** * Return the height of this page in points. * * @return float */ public function getHeight() { return $this->_height; } /** * Return the width of this page in points. * * @return float */ public function getWidth() { return $this->_width; } }