All drawing operations can be done in a context of PDF page.
Zend_Pdf_Page class provides a set of drawing primitives:
<?php
/**
* Draw a line from x1,y1 to x2,y2.
*
* @param float $x1
* @param float $y1
* @param float $x2
* @param float $y2
* @return Zend_Pdf_Page
*/
public function drawLine($x1, $y1, $x2, $y2);
<?php
/**
* 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
*
* @param float $x1
* @param float $y1
* @param float $x2
* @param float $y2
* @param integer $fillType
* @return Zend_Pdf_Page
*/
public function drawRectangle($x1, $y1, $x2, $y2,
$fillType = Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE);
<?php
/**
* 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
*
* @param float $x1
* @param float $y1
* @param float $x2
* @param float $y2
* @param integer|array $radius
* @param integer $fillType
* @return Zend_Pdf_Page
*/
public function drawRoundedRectangle($x1, $y1, $x2, $y2, $radius,
$fillType = Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE);
<?php
/**
* 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)
*
* @param array $x - array of float (the X co-ordinates of the vertices)
* @param array $y - array of float (the Y co-ordinates of the vertices)
* @param integer $fillType
* @param integer $fillMethod
* @return Zend_Pdf_Page
*/
public function drawPolygon($x, $y,
$fillType =
Zend_Pdf_Page::SHAPE_DRAW_FILL_AND_STROKE,
$fillMethod =
Zend_Pdf_Page::FILL_METHOD_NON_ZERO_WINDING);
<?php
/**
* Draw a circle centered on x, y with a radius of radius.
*
* Angles are specified in radians
*
* 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,
* 3*PI/8, 5*PI/8, 7*PI/8, 9*PI/8, 11*PI/8, 13*PI/8 and 15*PI/8 angles).
* At 0, PI/4, PI/2, 3*PI/4, PI, 5*PI/4, 3*PI/2 and 7*PI/4 it's exactly
* a tangent to a circle.
*
* @param float $x
* @param float $y
* @param float $radius
* @param mixed $param4
* @param mixed $param5
* @param mixed $param6
* @return Zend_Pdf_Page
*/
public function drawCircle($x,
$y,
$radius,
$param4 = null,
$param5 = null,
$param6 = null);
<?php
/**
* 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);
*
* Angles are specified in radians
*
* @param float $x1
* @param float $y1
* @param float $x2
* @param float $y2
* @param mixed $param5
* @param mixed $param6
* @param mixed $param7
* @return Zend_Pdf_Page
*/
public function drawEllipse($x1,
$y1,
$x2,
$y2,
$param5 = null,
$param6 = null,
$param7 = null);




