Canvas is an abstract rectangle drawing area which can be dropped into page object at specified place.

package Zend_Pdf
copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
license New BSD License

 Methods

Intersect current clipping area with a circle.

clipCircle(float $x, float $y, float $radius, float $startAngle = null, float $endAngle = null) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::clipCircle()

Parameters

$x

float

$y

float

$radius

float

$startAngle

float

$endAngle

float

Returns

\Zend_Pdf_Canvas_Interface

Intersect current clipping area with a polygon.

clipEllipse(float $x1, float $y1, float $x2, float $y2, float $startAngle = null, float $endAngle = null) : \Zend_Pdf_Canvas_Interface

Method signatures: drawEllipse($x1, $y1, $x2, $y2); drawEllipse($x1, $y1, $x2, $y2, $startAngle, $endAngle);

todo process special cases with $x2-$x1 == 0 or $y2-$y1 == 0
inherited_from \Zend_Pdf_Canvas_Interface::clipEllipse()

Parameters

$x1

float

$y1

float

$x2

float

$y2

float

$startAngle

float

$endAngle

float

Returns

\Zend_Pdf_Canvas_Interface

Intersect current clipping area with a polygon.

clipPolygon(array $x, array $y, integer $fillMethod = \Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::clipPolygon()

Parameters

$x

array
  • array of float (the X co-ordinates of the vertices)

$y

array
  • array of float (the Y co-ordinates of the vertices)

$fillMethod

integer

Returns

\Zend_Pdf_Canvas_Interface

Intersect current clipping area with a rectangle.

clipRectangle(float $x1, float $y1, float $x2, float $y2) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::clipRectangle()

Parameters

$x1

float

$y1

float

$x2

float

$y2

float

Returns

\Zend_Pdf_Canvas_Interface

Draw a canvas at the specified location

drawCanvas(\Zend_Pdf_Canvas_Interface $canvas, float $x1, float $y1, float $x2 = null, float $y2 = null) : \Zend_Pdf_Canvas_Interface

If upper right corner is not specified then canvas heght and width are used.

inherited_from \Zend_Pdf_Canvas_Interface::drawCanvas()

Parameters

$canvas

\Zend_Pdf_Canvas_Interface

$x1

float

$y1

float

$x2

float

$y2

float

Returns

\Zend_Pdf_Canvas_Interface

Draw a circle centered on x, y with a radius of radius.

drawCircle(float $x, float $y, float $radius, mixed $param4 = null, mixed $param5 = null, mixed $param6 = null) : \Zend_Pdf_Canvas_Interface

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.

inherited_from \Zend_Pdf_Canvas_Interface::drawCircle()

Parameters

$x

float

$y

float

$radius

float

$param4

mixed

$param5

mixed

$param6

mixed

Returns

\Zend_Pdf_Canvas_Interface

Draw an ellipse inside the specified rectangle.

drawEllipse(float $x1, float $y1, float $x2, float $y2, mixed $param5 = null, mixed $param6 = null, mixed $param7 = null) : \Zend_Pdf_Canvas_Interface

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);

todo process special cases with $x2-$x1 == 0 or $y2-$y1 == 0
inherited_from \Zend_Pdf_Canvas_Interface::drawEllipse()

Parameters

$x1

float

$y1

float

$x2

float

$y2

float

$param5

mixed

$param6

mixed

$param7

mixed

Returns

\Zend_Pdf_Canvas_Interface

Draw an image at the specified position on the page.

drawImage(\Zend_Pdf_Image $image, float $x1, float $y1, float $x2, float $y2) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::drawImage()

Parameters

$image

\Zend_Pdf_Image

$x1

float

$y1

float

$x2

float

$y2

float

Returns

\Zend_Pdf_Canvas_Interface

Draw a line from x1,y1 to x2,y2.

drawLine(float $x1, float $y1, float $x2, float $y2) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::drawLine()

Parameters

$x1

float

$y1

float

$x2

float

$y2

float

Returns

\Zend_Pdf_Canvas_Interface

Draw a polygon.

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)

inherited_from \Zend_Pdf_Canvas_Interface::drawPolygon()

Parameters

$x

array
  • array of float (the X co-ordinates of the vertices)

$y

array
  • array of float (the Y co-ordinates of the vertices)

$fillType

integer

$fillMethod

integer

Returns

\Zend_Pdf_Canvas_Interface

Draw a rectangle.

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

inherited_from \Zend_Pdf_Canvas_Interface::drawRectangle()

Parameters

$x1

float

$y1

float

$x2

float

$y2

float

$fillType

integer

Returns

\Zend_Pdf_Canvas_Interface

Draw a rounded rectangle.

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

inherited_from \Zend_Pdf_Canvas_Interface::drawRoundedRectangle()

Parameters

$x1

float

$y1

float

$x2

float

$y2

float

$radius

integerarray

$fillType

integer

Returns

\Zend_Pdf_Canvas_Interface

Draw a line of text at the specified position.

drawText(string $text, float $x, float $y, string $charEncoding = '') : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::drawText()

Parameters

$text

string

$x

float

$y

float

$charEncoding

string

(optional) Character encoding of source text. Defaults to current locale.

Exceptions

\Zend_Pdf_Exception

Returns

\Zend_Pdf_Canvas_Interface

Get current font.

getFont() : \Zend_Pdf_Resource_Font
inherited_from \Zend_Pdf_Canvas_Interface::getFont()

Returns

\Zend_Pdf_Resource_Font$font

Get current font size

getFontSize() : float
inherited_from \Zend_Pdf_Canvas_Interface::getFontSize()

Returns

float$fontSize

Return the style, applied to the page.

getStyle() : \Zend_Pdf_Style
inherited_from \Zend_Pdf_Canvas_Interface::getStyle()

Returns

\Zend_Pdf_Style

Writes the raw data to the page's content stream.

rawWrite(string $data, string $procSet = null) : \Zend_Pdf_Canvas_Interface

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.

inherited_from \Zend_Pdf_Canvas_Interface::rawWrite()

Parameters

$data

string

$procSet

string

(optional) Name of ProcSet to add.

Returns

\Zend_Pdf_Canvas_Interface

Restore the graphics state that was saved with the last call to saveGS().

restoreGS() : \Zend_Pdf_Canvas_Interface

Exceptions

\Zend_Pdf_Exception - if there is no previously saved state

Returns

\Zend_Pdf_Canvas_Interface

Rotate the page.

rotate(float $x, float $y, float $angle) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::rotate()

Parameters

$x

float
  • the X co-ordinate of rotation point

$y

float
  • the Y co-ordinate of rotation point

$angle

float
  • rotation angle

Returns

\Zend_Pdf_Canvas_Interface

Save the graphics state of this page.

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.

todo check for the open paths
inherited_from \Zend_Pdf_Canvas_Interface::saveGS()

Exceptions

\Zend_Pdf_Exception - if a save is performed with an open path

Returns

\Zend_Pdf_Canvas_Interface

Scale coordination system.

scale(float $xScale, float $yScale) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::scale()

Parameters

$xScale

float
  • X dimention scale factor

$yScale

float
  • Y dimention scale factor

Returns

\Zend_Pdf_Canvas_Interface

Set the transparancy

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

inherited_from \Zend_Pdf_Canvas_Interface::setAlpha()

Parameters

$alpha

float

$mode

string

Returns

\Zend_Pdf_Canvas_Interface

Set fill color.

setFillColor(\Zend_Pdf_Color $color) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::setFillColor()

Parameters

$color

\Zend_Pdf_Color

Returns

\Zend_Pdf_Canvas_Interface

Set current font.

setFont(\Zend_Pdf_Resource_Font $font, float $fontSize) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::setFont()

Parameters

$font

\Zend_Pdf_Resource_Font

$fontSize

float

Returns

\Zend_Pdf_Canvas_Interface

Set line color.

setLineColor(\Zend_Pdf_Color $color) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::setLineColor()

Parameters

$color

\Zend_Pdf_Color

Returns

\Zend_Pdf_Canvas_Interface

Set line dashing pattern

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.

inherited_from \Zend_Pdf_Canvas_Interface::setLineDashingPattern()

Parameters

$pattern

mixed

$phase

array

Returns

\Zend_Pdf_Canvas_Interface

Set line width.

setLineWidth(float $width) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::setLineWidth()

Parameters

$width

float

Returns

\Zend_Pdf_Canvas_Interface

Set the style to use for future drawing operations on this page

setStyle(\Zend_Pdf_Style $style) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::setStyle()

Parameters

$style

\Zend_Pdf_Style

Returns

\Zend_Pdf_Canvas_Interface

Translate coordination system.

skew(float $x, float $y, float $xAngle, float $yAngle) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::skew()

Parameters

$x

float
  • the X co-ordinate of axis skew point

$y

float
  • the Y co-ordinate of axis skew point

$xAngle

float
  • X axis skew angle

$yAngle

float
  • Y axis skew angle

Returns

\Zend_Pdf_Canvas_Interface

Translate coordination system.

translate(float $xShift, float $yShift) : \Zend_Pdf_Canvas_Interface
inherited_from \Zend_Pdf_Canvas_Interface::translate()

Parameters

$xShift

float
  • X coordinate shift

$yShift

float
  • Y coordinate shift

Returns

\Zend_Pdf_Canvas_Interface

Add procedureSet to the Page description

_addProcSet(string $procSetName) 

Parameters

$procSetName

string

Attach resource to the canvas

_attachResource(string $type, \Zend_Pdf_Resource $resource) : string

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'

Parameters

$type

string

$resource

\Zend_Pdf_Resource

Returns

string

 Properties

 

Drawing instructions

$_contents : string

Default

''
 

Current font

$_font : \Zend_Pdf_Resource_Font

Default

null
 

Current font size

$_fontSize : float

Default

 

Counter for the "Save" operations

$_saveCount : integer

Default

0
 

Current style

$_style : \Zend_Pdf_Style

Default

null