SetaPDF_Stamper_Stamp_XObject The XObject stamp class

File: /SetaPDF/Stamper/Stamp/XObject.php

This stamp class is able to use a SetaPDF_Core_XObject instance as its stamp appearance. XObjects could be images or so called form XObjects.

A form XObject is a PDF content stream that is a self-contained description of any sequence of graphics objects (including path objects, text objects and sampled images).

This stamp class allows you to stamp separately form XObjects or image XObjects. A form XObject could include for example drawing operations:

// Create a form XObject with the dimensions of 100 x 100
$xObject = SetaPDF_Core_XObject_Form::create($document, array(0, 0, 100, 100));
$canvas = $xObject->getCanvas();
$canvas->path()->setLineWidth(1);
$canvas->draw()
    ->rect(0, 0, 100, 100) // Draw a rectangle into the form XObject
    ->circle(50, 50, 50); // Draw a circle into the form XObject

$stamp = new SetaPDF_Stamper_Stamp_XObject($xObject);

Class hierarchy

Summary

Properties

$_action

The currently attached action object

$_blendMode

protected string SetaPDF_Stamper_Stamp_XObject::$_blendMode = 'Normal'

The blend mode

$_cacheCounter

An internal used id for forcing a recreation if a property was changed

$_dataCache

$_height

protected float|integer SetaPDF_Stamper_Stamp_XObject::$_height

The individual height of the image

$_opacity

The opacity

$_opacityGs

protected array Array of SetaPDF_Core_Resource_ExtGState objects SetaPDF_Stamper_Stamp_XObject::$_opacityGs = array()

Graphic state objects for handling transparency

$_optionalContentGroup

An optional content groups that should be used for the stamp

$_visibility

The visibility property

$_width

protected float|integer SetaPDF_Stamper_Stamp_XObject::$_width

The individual width of the image

$_xObject


Methods

__construct()

The constructor.

Parameters
$xObject : SetaPDF_Core_XObject

The xobject instance

_cacheStampData()

protected void SetaPDF_Stamper_Stamp::_cacheStampData ( string $cacheKey, string $stream, array $quadPoints )

Caches a content stream part.

Parameters
$cacheKey : string
 
$stream : string
 
$quadPoints : array
 

_ensureResources()

Ensures that all stamp resources are added to the page.

This is needed to reuse a cached stamp stream.

Parameters
$document : SetaPDF_Core_Document
 
$page : SetaPDF_Core_Document_Page
 
Return Values

An array of resource names

See

_getOpacityGraphicState()

Get and caches opacity graphic states.

Parameters
$document : SetaPDF_Core_Document
 
$opacity : float
 

_getVisibilityGroup()

Get and adds the visibility group of this stamp to a document.

Parameters
$document : SetaPDF_Core_Document
 

_postStamp()

protected array|null SetaPDF_Stamper_Stamp::_postStamp ( SetaPDF_Core_Document $document, SetaPDF_Core_Document_Page $page, array $stampData )

Method which is called after the main stamp method is executed.

Parameters
$document : SetaPDF_Core_Document
 
$page : SetaPDF_Core_Document_Page
 
$stampData : array
 

_preStamp()

protected void SetaPDF_Stamper_Stamp::_preStamp ( SetaPDF_Core_Document $document, SetaPDF_Core_Document_Page $page, array $stampData )

Method which is called before the main stamp method is executed.

Parameters
$document : SetaPDF_Core_Document
 
$page : SetaPDF_Core_Document_Page
 
$stampData : array
 

_putAction()

protected void SetaPDF_Stamper_Stamp::_putAction ( SetaPDF_Core_Document $document, SetaPDF_Core_Document_Page $page, array $stampData, number $xy1, number $xy2, number $xy3, number $xy4 )

Put the action via an link annotation above the stamp object.

Parameters
$document : SetaPDF_Core_Document
 
$page : SetaPDF_Core_Document_Page
 
$stampData : array
 
$xy1 : number
 
$xy2 : number
 
$xy3 : number
 
$xy4 : number
 

_stamp()

protected bool SetaPDF_Stamper_Stamp_XObject::_stamp ( SetaPDF_Core_Document $document, SetaPDF_Core_Document_Page $page, array $stampData )

Writes the xobject draw operators of this stamp onto the canvas.

Parameters
$document : SetaPDF_Core_Document
 
$page : SetaPDF_Core_Document_Page
 
$stampData : array
 

_stampByCache()

protected true|string SetaPDF_Stamper_Stamp::_stampByCache ( SetaPDF_Core_Document $document, SetaPDF_Core_Document_Page $page, array $stampData )

Try to stamp with the page with a cached content stream part.

Parameters
$document : SetaPDF_Core_Document
 
$page : SetaPDF_Core_Document_Page
 
$stampData : array
 
Return Values

True if the stamp was written by a cache object, a cache key if it was not found

Exceptions

Throws SetaPDF_Stamper_Exception

cleanUp()

Release resources / cycled references.

getAction()

Get the current attached action.

getDimensions()

public array SetaPDF_Stamper_Stamp::getDimensions ( void )

Get the stamp dimension.

getHeight()

public float|integer SetaPDF_Stamper_Stamp_XObject::getHeight ( void )

Get the height of the XObject stamp.

If no individual height is given the height will be received from the XObject object by forwarding an individual width (if available) to keep the aspect ratio.

getOpacity()

public number SetaPDF_Stamper_Stamp::getOpacity ( void )

Get the opacity.

getOpacityBlendMode()

Get the blend mode.

See
  • PDF 32000-1:2008 - 11.3.5, "Blend Mode"

getOptionalContentGroup()

Get the optional content group for this stamp.

getOriginX()

public float|int SetaPDF_Stamper_Stamp::getOriginX ( SetaPDF_Core_Document_Page $page, string $position )

Get the x-origin in view to the position of the stamp object.

Parameters
$page : SetaPDF_Core_Document_Page

The page instance

$position : string

Position constant SetaPDF_Stamper::POSITION_XXX

getOriginY()

public float|int SetaPDF_Stamper_Stamp::getOriginY ( SetaPDF_Core_Document_Page $page, string $position )

Get the y-origin in view to the position of the stamp object.

Parameters
$page : SetaPDF_Core_Document_Page

The page instance

$position : string

Position constant SetaPDF_Stamper::POSITION_XXX

getVisibility()

public null|string SetaPDF_Stamper_Stamp::getVisibility ( void )

Get the visibility of the stamp object.

getWidth()

public float|integer SetaPDF_Stamper_Stamp_XObject::getWidth ( void )

Get the width of the XObject stamp.

If no individual width is given the width will be received from the XObject object by forwarding an individual height (if available) to keep the aspect ratio.

getXObject()

Get the XObject instance.

setAction()

Add an action object to the stamp object.

Parameters
$action : SetaPDF_Core_Document_Action

The action object

setDimensions()

public void SetaPDF_Stamper_Stamp_XObject::setDimensions ( float|integer $width, float|integer $height )

Set the dimensions of this stamp.

Parameters
$width : float|integer

The new width

$height : float|integer

The new height

setHeight()

public void SetaPDF_Stamper_Stamp_XObject::setHeight ( float|integer $height )

Set the individual height if the XObject stamp.

Parameters
$height : float|integer

The new height

setLink()

public void SetaPDF_Stamper_Stamp::setLink ( string $uri )

Set a link onto the stamp.

Parameters
$uri : string

The link

See

setOpacity()

public void SetaPDF_Stamper_Stamp::setOpacity ( float $alpha [, string $blendMode = 'Normal' ] )

Set the opacity and blend mode of the stamp object.

Parameters
$alpha : float

A value between 0 and 1, whereas 1 is defined as 100% opacity

$blendMode : string

A blend mode defined in PDF 32000-1:2008 - 11.3.5, "Blend Mode"

Exceptions

Throws InvalidArgumentException

setOptionalContentGroup()

Set the optional content group for this stamp.

Parameters
$optionalContentGroup : SetaPDF_Core_Document_OptionalContent_Group|null
 

setVisibility()

public void SetaPDF_Stamper_Stamp::setVisibility ( null|string $visibility )

Set the visibility of the stamp object.

This method controls the visibility of the stamp object on screen view and/or printer output.

Parameters
$visibility : null|string

Use the constants VISIBILITY_XXX or null(equal to VISIBILITY_ALL)

Exceptions

Throws InvalidArgumentException

setWidth()

public void SetaPDF_Stamper_Stamp_XObject::setWidth ( float|integer $width )

Set the individual width of the XObject stamp.

Parameters
$width : float|integer

The new width

setXObject()

Set the XObject.

Parameters
$xObject : SetaPDF_Core_XObject

The new xobject instance

stamp()

public bool SetaPDF_Stamper_Stamp::stamp ( SetaPDF_Core_Document $document, SetaPDF_Core_Document_Page $page, array $stampData )

Stamp this stamp object onto a page.

Parameters
$document : SetaPDF_Core_Document

The document object

$page : SetaPDF_Core_Document_Page

The page object

$stampData : array

The stampData array

updateCacheCounter()

Updates the cache counter.