Pdf/Page.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: Page.php 24593 2012-01-05 20:35:02Z matthew $
\Zend_Pdf_Page
PDF Page
- Parent(s)
- \Zend_Pdf_Canvas_Abstract
- Copyright
- Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants
SIZE_LETTER_LANDSCAPE
= '792:612:'Size representing a US Letter page in landscape (wide) orientation.
Properties

boolean $_attached = Flag which signals, that page is created separately from any PDF document or attached to anyone.
- Type
- boolean

string $_contents = ''
''Details- Type
- string
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_contents

\Zend_Pdf_Element_Reference|\Zend_Pdf_Element_Object $_dictionary = Page dictionary (refers to an inderect Zend_Pdf_Element_Dictionary object).

\Zend_Pdf_Resource_Font $_font = null
nullDetails- Type
- \Zend_Pdf_Resource_Font
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_font

\Zend_Pdf_ElementFactory_Interface $_objFactory = nullPDF objects factory.
nullDetails

boolean $_safeGS = Safe Graphics State semafore
If it's false, than we can't be sure Graphics State is restored withing context of previous contents stream (ex. drawing coordinate system may be rotated). We should encompass existing content with save/restore GS operators
- Type
- boolean

integer $_saveCount = 0
0Details- Type
- integer
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_saveCount

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

__clone() : voidClone page, extract it and dependent objects from the current document, so it can be used within other docs.

__construct(mixed $param1, mixed $param2 = null, mixed $param3 = null) : voidObject constructor.
Constructor signatures:
- Load PDF page from a parsed PDF file.
Object factory is created by PDF parser.
new Zend_Pdf_Page(Zend_Pdf_Element_Dictionary $pageDict,
Zend_Pdf_ElementFactory_Interface $factory);
- Make a copy of the PDF page. New page is created in the same context as source page. Object factory is shared. Thus it will be attached to the document, but need to be placed into Zend_Pdf::$pages array
to be included into output.
new Zend_Pdf_Page(Zend_Pdf_Page $page);
- Create new page with a specified pagesize. If $factory is null then it will be created and page must be attached to the document to be
included into output.
new Zend_Pdf_Page(string $pagesize, Zend_Pdf_ElementFactory_Interface $factory = null);
- Create new page with a specified pagesize (in default user space units). If $factory is null then it will be created and page must be attached to the document to be
included into output.
new Zend_Pdf_Page(numeric $width, numeric $height, Zend_Pdf_ElementFactory_Interface $factory = null);
| Name | Type | Description |
|---|---|---|
| $param1 | mixed | |
| $param2 | mixed | |
| $param3 | mixed |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |

_addProcSet(string $procSetName) : voidAdd procedureSet to the Page 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 |

attachAnnotation(\Zend_Pdf_Annotation $annotation) : \Zend_Pdf_Page| Name | Type | Description |
|---|---|---|
| $annotation | \Zend_Pdf_Annotation |
| Type | Description |
|---|---|
| \Zend_Pdf_Page |

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_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_InterfaceDraw a rounded rectangle.
Inherited from: \Zend_Pdf_Canvas_Abstract::drawRoundedRectangle()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_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 |

extractFont( $fontName) : \Zend_Pdf_Resource_Font_Extracted | nullExtract font attached to the page by specific font name
$fontName should be specified in UTF-8 encoding
| Name | Type | Description |
|---|---|---|
| $fontName |
| Type | Description |
|---|---|
| \Zend_Pdf_Resource_Font_Extracted | null |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |

extractFonts() : arrayExtract fonts attached to the page
returns array of Zend_Pdf_Resource_Font_Extracted objects
| Type | Description |
|---|---|
| array |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |

flush() : voidDump current drawing instructions into the content stream.
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |
- Todo
- Don't forget to close all current graphics operations (like path drawing)

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 |

render(\Zend_Pdf_ElementFactory_Interface $objFactory) : voidPrepare page to be rendered into PDF.
| Name | Type | Description |
|---|---|---|
| $objFactory | \Zend_Pdf_ElementFactory_Interface |
| Exception | Description |
|---|---|
| \Zend_Pdf_Exception |
- Todo
- Don't forget to close all current graphics operations (like path drawing)

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_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_InterfaceSet line dashing pattern
Inherited from: \Zend_Pdf_Canvas_Abstract::setLineDashingPattern()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_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 |