Pdf/Canvas.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 [email protected] so we can send you a copy immediately.
- Category
- Zend
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- Zend_Pdf
- Version
- $Id: Style.php 20096 2010-01-06 02:05:09Z bkarwin $
\Zend_Pdf_Canvas
Canvas is an abstract rectangle drawing area which can be dropped into page object at specified place.
- Parent(s)
- \Zend_Pdf_Canvas_Abstract
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Properties

string $_contents = ''
''Details- Type
- string
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_contents

\Zend_Pdf_Resource_Font $_font = null
nullDetails- Type
- \Zend_Pdf_Resource_Font
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_font

array $_procSet = array()Canvas procedure sets.
Allowed values: 'PDF', 'Text', 'ImageB', 'ImageC', 'ImageI'.
array()Details- Type
- array

$_resources = array('Font' => array(), 'XObject' => array(), 'ExtGState' => array())
array('Font' => array(), 'XObject' => array(), 'ExtGState' => array())Details- Type
- n/a

integer $_saveCount = 0
0Details- Type
- integer
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_saveCount

\Zend_Pdf_Style $_style = null
nullDetails- Type
- \Zend_Pdf_Style
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_style
Methods

__construct(float $width, float $height) : voidObject constructor
| Name | Type | Description |
|---|---|---|
| $width | float | |
| $height | float |

_addProcSet(string $procSetName) : voidAdd procedure set to the canvas description
| Name | Type | Description |
|---|---|---|
| $procSetName | string |

_attachResource(string $type, \Zend_Pdf_Resource $resource) : stringAttach 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'
| Name | Type | Description |
|---|---|---|
| $type | string | |
| $resource | \Zend_Pdf_Resource |
| Type | Description |
|---|---|
| string |

clipCircle(float $x, float $y, float $radius, float $startAngle = null, float $endAngle = null) : \Zend_Pdf_Canvas_InterfaceIntersect current clipping area with a circle.
Inherited from: \Zend_Pdf_Canvas_Abstract::clipCircle()| Name | Type | Description |
|---|---|---|
| $x | float | |
| $y | float | |
| $radius | float | |
| $startAngle | float | |
| $endAngle | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

clipEllipse(float $x1, float $y1, float $x2, float $y2, float $startAngle = null, float $endAngle = null) : \Zend_Pdf_Canvas_InterfaceIntersect current clipping area with a polygon.
Inherited from: \Zend_Pdf_Canvas_Abstract::clipEllipse()Method signatures: drawEllipse($x1, $y1, $x2, $y2); drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle);
| Name | Type | Description |
|---|---|---|
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float | |
| $startAngle | float | |
| $endAngle | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

clipPolygon(array $x, array $y, integer $fillMethod = \Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING) : \Zend_Pdf_Canvas_InterfaceIntersect current clipping area with a polygon.
Inherited from: \Zend_Pdf_Canvas_Abstract::clipPolygon()| Name | Type | Description |
|---|---|---|
| $x | array |
|
| $y | array |
|
| $fillMethod | integer |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

clipRectangle(float $x1, float $y1, float $x2, float $y2) : \Zend_Pdf_Canvas_InterfaceIntersect current clipping area with a rectangle.
Inherited from: \Zend_Pdf_Canvas_Abstract::clipRectangle()| Name | Type | Description |
|---|---|---|
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawCanvas(\Zend_Pdf_Canvas_Interface $canvas, float $x1, float $y1, float $x2 = null, float $y2 = null) : \Zend_Pdf_Canvas_InterfaceDraw a canvas at the specified location
Inherited from: \Zend_Pdf_Canvas_Abstract::drawCanvas()If upper right corner is not specified then canvas heght and width are used.
| Name | Type | Description |
|---|---|---|
| $canvas | \Zend_Pdf_Canvas_Interface | |
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawCircle(float $x, float $y, float $radius, mixed $param4 = null, mixed $param5 = null, mixed $param6 = null) : \Zend_Pdf_Canvas_InterfaceDraw a circle centered on x, y with a radius of radius.
Inherited from: \Zend_Pdf_Canvas_Abstract::drawCircle()Method signatures: drawCircle($x, $y, $radius); drawCircle($x, $y, $radius, $fillType); drawCircle($x, $y, $radius, $startAngle, $endAngle); drawCircle($x, $y, $radius, $startAngle, $endAngle, $fillType);
It's not a really circle, because PDF supports only cubic Bezier curves. But very good approximation. It differs from a real circle on a maximum 0.00026 radiuses (at PI/8, 3PI/8, 5PI/8, 7PI/8, 9PI/8, 11PI/8, 13PI/8 and 15PI/8 angles). At 0, PI/4, PI/2, 3PI/4, PI, 5PI/4, 3PI/2 and 7*PI/4 it's exactly a tangent to a circle.
| Name | Type | Description |
|---|---|---|
| $x | float | |
| $y | float | |
| $radius | float | |
| $param4 | mixed | |
| $param5 | mixed | |
| $param6 | mixed |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawEllipse(float $x1, float $y1, float $x2, float $y2, mixed $param5 = null, mixed $param6 = null, mixed $param7 = null) : \Zend_Pdf_Canvas_InterfaceDraw an ellipse inside the specified rectangle.
Inherited from: \Zend_Pdf_Canvas_Abstract::drawEllipse()Method signatures: drawEllipse($x1, $y1, $x2, $y2); drawEllipse($x1, $y1, $x2, $y2, $fillType); drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle); drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle, $fillType);
| Name | Type | Description |
|---|---|---|
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float | |
| $param5 | mixed | |
| $param6 | mixed | |
| $param7 | mixed |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawImage(\Zend_Pdf_Image $image, float $x1, float $y1, float $x2, float $y2) : \Zend_Pdf_Canvas_InterfaceDraw an image at the specified position on the page.
Inherited from: \Zend_Pdf_Canvas_Abstract::drawImage()| Name | Type | Description |
|---|---|---|
| $image | \Zend_Pdf_Image | |
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawLine(float $x1, float $y1, float $x2, float $y2) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawPolygon(array $x, array $y, integer $fillType = \Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE, integer $fillMethod = \Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING) : \Zend_Pdf_Canvas_Interface
If $fillType is Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE or Zend_Pdf_Page::SHAPE_DRAW_FILL, then polygon is automatically closed. See detailed description of these methods in a PDF documentation (section 4.4.2 Path painting Operators, Filling)
| Name | Type | Description |
|---|---|---|
| $x | array |
|
| $y | array |
|
| $fillType | integer | |
| $fillMethod | integer |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawRectangle(float $x1, float $y1, float $x2, float $y2, integer $fillType = \Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE) : \Zend_Pdf_Canvas_Interface
Fill types: Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE - fill rectangle and stroke (default) Zend_Pdf_Page::SHAPE_DRAW_STROKE - stroke rectangle Zend_Pdf_Page::SHAPE_DRAW_FILL - fill rectangle
| Name | Type | Description |
|---|---|---|
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float | |
| $fillType | integer |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawRoundedRectangle(float $x1, float $y1, float $x2, float $y2, integer | array $radius, integer $fillType = \Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE) : \Zend_Pdf_Canvas_InterfaceDraw a rounded rectangle.
Inherited from: \Zend_Pdf_Canvas_Abstract::drawRoundedRectangle()Fill types: Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE - fill rectangle and stroke (default) Zend_Pdf_Page::SHAPE_DRAW_STROKE - stroke rectangle Zend_Pdf_Page::SHAPE_DRAW_FILL - fill rectangle
radius is an integer representing radius of the four corners, or an array of four integers representing the radius starting at top left, going clockwise
| Name | Type | Description |
|---|---|---|
| $x1 | float | |
| $y1 | float | |
| $x2 | float | |
| $y2 | float | |
| $radius | integer | array | |
| $fillType | integer |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

drawText(string $text, float $x, float $y, string $charEncoding = '') : \Zend_Pdf_Canvas_InterfaceDraw a line of text at the specified position.
Inherited from: \Zend_Pdf_Canvas_Abstract::drawText()| Name | Type | Description |
|---|---|---|
| $text | string | |
| $x | float | |
| $y | float | |
| $charEncoding | string | (optional) Character encoding of source text. Defaults to current locale. |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |

getStyle() : \Zend_Pdf_StyleReturn the style, applied to the page.
Inherited from: \Zend_Pdf_Canvas_Abstract::getStyle()| Type | Description |
|---|---|
| \Zend_Pdf_Style |

rawWrite(string $data, string $procSet = null) : \Zend_Pdf_Canvas_InterfaceWrites the raw data to the page's content stream.
Inherited from: \Zend_Pdf_Canvas_Abstract::rawWrite()Be sure to consult the PDF reference to ensure your syntax is correct. No attempt is made to ensure the validity of the stream data.
| Name | Type | Description |
|---|---|---|
| $data | string | |
| $procSet | string | (optional) Name of ProcSet to add. |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

restoreGS() : \Zend_Pdf_Canvas_InterfaceRestore the graphics state that was saved with the last call to saveGS().
Inherited from: \Zend_Pdf_Canvas_Abstract::restoreGS()| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception | - if there is no previously saved state |

rotate(float $x, float $y, float $angle) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $x | float |
|
| $y | float |
|
| $angle | float |
|
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

saveGS() : \Zend_Pdf_Canvas_Interface
This takes a snapshot of the currently applied style, position, clipping area and any rotation/translation/scaling that has been applied.
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception | - if a save is performed with an open path |

scale(float $xScale, float $yScale) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $xScale | float |
|
| $yScale | float |
|
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

setAlpha(float $alpha, string $mode = 'Normal') : \Zend_Pdf_Canvas_Interface
$alpha == 0 - transparent $alpha == 1 - opaque
Transparency modes, supported by PDF: Normal (default), Multiply, Screen, Overlay, Darken, Lighten, ColorDodge, ColorBurn, HardLight, SoftLight, Difference, Exclusion
| Name | Type | Description |
|---|---|---|
| $alpha | float | |
| $mode | string |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |

setFillColor(\Zend_Pdf_Color $color) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $color | \Zend_Pdf_Color |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

setFont(\Zend_Pdf_Resource_Font $font, float $fontSize) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $font | \Zend_Pdf_Resource_Font | |
| $fontSize | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

setLineColor(\Zend_Pdf_Color $color) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $color | \Zend_Pdf_Color |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

setLineDashingPattern(mixed $pattern, array $phase = 0) : \Zend_Pdf_Canvas_InterfaceSet line dashing pattern
Inherited from: \Zend_Pdf_Canvas_Abstract::setLineDashingPattern()Pattern is an array of floats: array(on_length, off_length, on_length, off_length, ...) or Zend_Pdf_Page::LINE_DASHING_SOLID constant Phase is shift from the beginning of line.
| Name | Type | Description |
|---|---|---|
| $pattern | mixed | |
| $phase | array |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

setLineWidth(float $width) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $width | float |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

setStyle(\Zend_Pdf_Style $style) : \Zend_Pdf_Canvas_InterfaceSet the style to use for future drawing operations on this page
Inherited from: \Zend_Pdf_Canvas_Abstract::setStyle()| Name | Type | Description |
|---|---|---|
| $style | \Zend_Pdf_Style |
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

skew(float $x, float $y, float $xAngle, float $yAngle) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $x | float |
|
| $y | float |
|
| $xAngle | float |
|
| $yAngle | float |
|
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |

translate(float $xShift, float $yShift) : \Zend_Pdf_Canvas_Interface
| Name | Type | Description |
|---|---|---|
| $xShift | float |
|
| $yShift | float |
|
| Type | Description |
|---|---|
| \Zend_Pdf_Canvas_Interface |