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 = null
null
Details- 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 = 0
0
Details- Type
- integer
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_saveCount


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


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


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


_attachResource(string $type, \Zend_Pdf_Resource $resource) : string
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'
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_Interface
Intersect 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_Interface
Intersect 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_Interface
Intersect 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_Interface
Intersect 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_Interface
Draw 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_Interface
Draw 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_Interface
Draw 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_Interface
Draw 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_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
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_Interface
Draw 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_Style
Return 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_Interface
Writes 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_Interface
Restore 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_Interface
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_Interface
Set 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 |