setasign\SetaPDF2\Stamper\Stamp

RichTextStamp The rich-text stamp class

File: /SetaPDF v2/Stamper/Stamp/RichTextStamp.php
Old class name (alias): \SetaPDF_Stamper_Stamp_RichText

With the stamp class you can add rich-text to an existing PDF document.

The text can be created by a subset of HTML and CSS style attributes.

Internally the class uses a \setasign\SetaPDF2\Core\Text\RichTextBlock object. Most methods of this class are proxy methods to the RichTextBlock instance.

Class hierarchy

Summary

Constants

VISIBILITY_ALL

public const string AbstractStamp::VISIBILITY_ALL = 'all'

Visibility constant

VISIBILITY_PRINT

public const string AbstractStamp::VISIBILITY_PRINT = 'print'

Visibility constant

VISIBILITY_VIEW

public const string AbstractStamp::VISIBILITY_VIEW = 'view'

Visibility constant


Properties

$_action

The currently attached action object

$_blendMode

protected string AbstractStamp::$_blendMode = 'Normal'

The blend mode

$_cacheCounter

protected int AbstractStamp::$_cacheCounter = 0

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

$_dataCache

protected array AbstractStamp::$_dataCache

The cache data for the stamp

See

$_fonts

protected array RichTextStamp::$_fonts = array()

An array holding font references

$_opacity

protected float AbstractStamp::$_opacity = 1.0

The opacity

$_opacityGs

protected array AbstractStamp::$_opacityGs = array()

Graphic state objects for handling transparency

Array of \setasign\SetaPDF2\Core\Resource\ExtGState objects

$_optionalContentGroup

An optional content groups that should be used for the stamp

$_richTextBlock

A richt text block instance

$_text

protected string RichTextStamp::$_text = ''

$_visibility

protected string AbstractStamp::$_visibility = 'all'

The visibility property


Methods

__construct()

public RichTextStamp::__construct (
\SetaPDF_Core_Document $document,
?callable $fontLoader = null
)

The constructor.

Parameters
$document : \SetaPDF_Core_Document
 
$fontLoader : ?callable
 

_cacheStampData()

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

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

Exceptions

Throws \setasign\SetaPDF2\Core\SecHandler\Exception

Throws \setasign\SetaPDF2\Core\Type\Exception

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
 
Exceptions

Throws \setasign\SetaPDF2\Core\SecHandler\Exception

Throws \setasign\SetaPDF2\Core\Type\Exception

_postStamp()

protected AbstractStamp::_postStamp (
\SetaPDF_Core_Document $document,
\SetaPDF_Core_Document_Page $page,
array $stampData
): ?array

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

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

Throws \setasign\SetaPDF2\Core\Type\Exception

_preStamp()

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

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

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

Throws \setasign\SetaPDF2\Core\SecHandler\Exception

Throws \setasign\SetaPDF2\Core\Type\Exception

_putAction()

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

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
 
Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

_stamp()

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

Writes the content of this stamp onto the page canvas.

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

Throws \setasign\SetaPDF2\Core\Exception

Throws \setasign\SetaPDF2\Core\Font\Exception

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Core\Type\IndirectReference\Exception

Throws \setasign\SetaPDF2\NotImplementedException

_stampByCache()

protected RichTextStamp::_stampByCache (
\SetaPDF_Core_Document $document,
\SetaPDF_Core_Document_Page $page,
array $stampData
): bool|string|true
Parameters
$document : \SetaPDF_Core_Document
 
$page : \SetaPDF_Core_Document_Page
 
$stampData : array
 
Exceptions

Throws \setasign\SetaPDF2\Core\Exception

Throws \setasign\SetaPDF2\Stamper\Exception

getAction()

Get the current attached action.

getAlign()

public RichTextStamp::getAlign (
void
): string

Get the text alignment.

See

getDimensions()

public AbstractStamp::getDimensions (
void
): array

Get the stamp dimension.

getHeight()

public RichTextStamp::getHeight (
void
): float|int

Get the height of this stamp.

Proxy method to \setasign\SetaPDF2\Core\Text\RichTextBlock::getHeight() of the rich-text block instance.

Exceptions

Throws \setasign\SetaPDF2\Core\Exception

See

getOpacity()

public AbstractStamp::getOpacity (
void
): float

Get the opacity.

getOpacityBlendMode()

public AbstractStamp::getOpacityBlendMode (
void
): string

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 AbstractStamp::getOriginX (
\SetaPDF_Core_Document_Page $page,
string $position
): float|int

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 \setasign\SetaPDF2\Stamper\Stamper::POSITION_XXX

Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

getOriginY()

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

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 \setasign\SetaPDF2\Stamper\Stamper::POSITION_XXX

Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

getPaddingBottom()

getPaddingLeft()

getPaddingRight()

getPaddingTop()

getRichTextBlock()

Access the rich-text block instance.

IF YOU MAKE CHANGES OUTSIDE THE STAMP CLASS, MAKE SURE THAT YOU CALL {updateCacheCounter()} AFTERWARDS.

getText()

public RichTextStamp::getText (
void
): string

getTextWidth()

public RichTextStamp::getTextWidth (
void
): int|float

Returns the width of the rich-text stamp without padding.

Exceptions

Throws \setasign\SetaPDF2\Core\Exception

See

getVisibility()

public AbstractStamp::getVisibility (
void
): ?string

Get the visibility of the stamp object.

getWidth()

public RichTextStamp::getWidth (
void
): float|int

Get the width of this stamp.

Proxy method to \setasign\SetaPDF2\Core\Text\RichTextBlock::getWidth() of the rich-text block instance.

Exceptions

Throws \setasign\SetaPDF2\Core\Exception

See

setAction()

Add an action object to the stamp object.

Parameters
$action : \SetaPDF_Core_Document_Action

The action object

setAlign()

public RichTextStamp::setAlign (
string $align
): void

Set the text alignment.

Parameters
$align : string
 
See

setBorderWidth()

public RichTextStamp::setBorderWidth (
int|float $borderWidth
): void

Set the border width.

Parameters
$borderWidth : int|float
 
See

setDefaultFontFamily()

public RichTextStamp::setDefaultFontFamily (
string $fontFamily
): void
Parameters
$fontFamily : string
 
See

setDefaultFontSize()

public RichTextStamp::setDefaultFontSize (
int|float $fontSize
): void
Parameters
$fontSize : int|float
 
See

setDefaultLineHeight()

public RichTextStamp::setDefaultLineHeight (
int|float $lineHeight
): void
Parameters
$lineHeight : int|float

Only unitless line-heights are supported here like 1 or 1.4

setLink()

public AbstractStamp::setLink (
string $uri
): void

Set a link onto the stamp.

Parameters
$uri : string

The link

Exceptions

Throws \setasign\SetaPDF2\Core\Type\Exception

See

setOpacity()

public AbstractStamp::setOpacity (
float $alpha,
string $blendMode = 'Normal'
): void

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
 

setPadding()

public RichTextStamp::setPadding (
int|float $padding
): void

Set the padding.

Parameters
$padding : int|float
 
See

setPaddingBottom()

public RichTextStamp::setPaddingBottom (
int|float $paddingBottom
): void

Set the bottom padding.

Parameters
$paddingBottom : int|float
 
See

setPaddingLeft()

public RichTextStamp::setPaddingLeft (
int|float $paddingLeft
): void

Set the left padding.

Parameters
$paddingLeft : int|float
 
See

setPaddingRight()

public RichTextStamp::setPaddingRight (
int|float $paddingRight
): void

Set the right padding.

Parameters
$paddingRight : int|float
 
See

setPaddingTop()

public RichTextStamp::setPaddingTop (
int|float $paddingTop
): void

Set the top padding.

Parameters
$paddingTop : int|float
 
See

setText()

public RichTextStamp::setText (
string $text,
string $locale = 'en_US'
): void
Parameters
$text : string

A UTF-8 string with a subset of HTML tags and CSS properties in style-parameter.

$locale : string

INTL locale used for the break behaviour

See

setTextWidth()

public RichTextStamp::setTextWidth (
int|float $width
): void

Set the width of the text in the rich-text stamp. Padding is not included in this width.

Parameters
$width : int|float
 
See

setVisibility()

public AbstractStamp::setVisibility (
?string $visibility
): void

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 : ?string

Use the constants VISIBILITY_XXX or null(equal to VISIBILITY_ALL)

Exceptions

Throws \InvalidArgumentException

stamp()

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

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

Exceptions

Throws \setasign\SetaPDF2\Core\SecHandler\Exception

Throws \setasign\SetaPDF2\Core\Type\Exception

Throws \setasign\SetaPDF2\Stamper\Exception

updateCacheCounter()

public AbstractStamp::updateCacheCounter (
void
): void

Updates the cache counter.