Pdf/Canvas/Interface.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_Interface
Canvas is an abstract rectangle drawing area which can be dropped into page object at specified place.
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Methods


clipCircle(float $x, float $y, float $radius, float $startAngle = null, float $endAngle = null) : \Zend_Pdf_Canvas_Interface
Intersect current clipping area with a circle.
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.
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 |
- Todo
- process special cases with $x2-$x1 == 0 or $y2-$y1 == 0


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.
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.
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
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.
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.
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 |
- Todo
- process special cases with $x2-$x1 == 0 or $y2-$y1 == 0


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.
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
Draw a line from x1,y1 to x2,y2.
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
Draw a polygon.
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
Draw a rectangle.
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
Draw a rounded rectangle.
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.
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 |


getFont() : \Zend_Pdf_Resource_Font
Get current font.
Type | Description |
---|---|
\Zend_Pdf_Resource_Font | $font |


getStyle() : \Zend_Pdf_Style | null
Return the style, applied to the page.
Type | Description |
---|---|
\Zend_Pdf_Style | null |


rawWrite(string $data, string $procSet = null) : \Zend_Pdf_Canvas_Interface
Writes the raw data to the page's content stream.
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 |


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


saveGS() : \Zend_Pdf_Page
Save the graphics state of this page.
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_Page |
Exception | Description |
---|---|
\Zend_Pdf_Exception | - if a save is performed with an open path |


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


setAlpha(float $alpha, string $mode = 'Normal') : \Zend_Pdf_Canvas_Interface
Set the transparancy
$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
Set fill color.
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
Set current font.
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
Set line color.
Name | Type | Description |
---|---|---|
$color | \Zend_Pdf_Color |
Type | Description |
---|---|
\Zend_Pdf_Canvas_Interface |


setLineDashingPattern(mixed $pattern, array $phase = 0) : \Zend_Pdf_Canvas_Interface
Set line dashing pattern
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
Set line width.
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
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
Translate coordination system.
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
Translate coordination system.
Name | Type | Description |
---|---|---|
$xShift | float |
|
$yShift | float |
|
Type | Description |
---|---|
\Zend_Pdf_Canvas_Interface |