Pdf/Canvas.php
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 license@zend.com 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
- 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 = nullnullDetails- Type
- \Zend_Pdf_Resource_Font
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_font

array $_procSet = array()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 = 00Details- Type
- integer
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_saveCount

\Zend_Pdf_Style $_style = nullnullDetails- 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_InterfaceIf $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_InterfaceFill 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_InterfaceFill 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_InterfaceThis 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_InterfacePattern 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 |