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
null
Details- Type
- \Zend_Pdf_Resource_Font
- Inherited_from
- \Zend_Pdf_Canvas_Abstract::$$_font


\Zend_Pdf_ElementFactory_Interface $_objFactory = null
PDF objects factory.
null
Details


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


__clone() : void
Clone 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) : void
Object 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) : void
Add procedureSet to the Page 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 |


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_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
Draw 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_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 |


extractFont( $fontName) : \Zend_Pdf_Resource_Font_Extracted | null
Extract 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() : array
Extract fonts attached to the page
returns array of Zend_Pdf_Resource_Font_Extracted objects
Type | Description |
---|---|
array |
Exception | Description |
---|---|
\Zend_Pdf_Exception |


flush() : void
Dump 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_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 |


render(\Zend_Pdf_ElementFactory_Interface $objFactory) : void
Prepare 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_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
Set 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_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 |