SetaPDF_Stamper_Stamp_Text The text stamp class
File: /SetaPDF v2/Stamper/Stamp/Text.php
With the text stamp class you can add dynamic text to an existing PDF document. The text can be of multiple lines and will break automatically if a width is defined.
Internally the class uses a SetaPDF_Core_Text_Block
object.
The text stamp class has to be initiated with a font instance. The SetaPDF core system actually offers all standard PDF fonts and a parser for TrueType font-files:
// create a standard font $font = SetaPDF_Core_Font_Standard_Helvetica::create($document); $stamp = new SetaPDF_Stamper_Stamp_Text($font, 16); // or create a subset font based on a TrueType font file $font = new SetaPDF_Core_Font_TrueType_Subset($document, 'path/to/font/file.ttf'); $stamp = new SetaPDF_Stamper_Stamp_Text($font, 16);
Class hierarchy
Summary
Methods
- __construct()
- _cacheStampData()
- _ensureResources()
- _getOpacityGraphicState()
- _getVisibilityGroup()
- _postStamp()
- _preStamp()
- _putAction()
- _stamp()
- _stampByCache()
- cleanUp()
- getAction()
- getAlign()
- getBackgroundColor()
- getBorderColor()
- getBorderWidth()
- getCharSpacing()
- getDimensions()
- getFont()
- getFontSize()
- getHeight()
- getLineHeight()
- getOpacity()
- getOpacityBlendMode()
- getOptionalContentGroup()
- getOriginX()
- getOriginY()
- getOutlineColor()
- getOutlineWidth()
- getPaddingBottom()
- getPaddingLeft()
- getPaddingRight()
- getPaddingTop()
- getRenderingMode()
- getText()
- getTextBlock()
- getTextColor()
- getUnderline()
- getUnderlineColor()
- getVisibility()
- getWidth()
- getWordSpacing()
- setAction()
- setAlign()
- setBackgroundColor()
- setBorderColor()
- setBorderWidth()
- setCharSpacing()
- setFont()
- setFontSize()
- setLineHeight()
- setLink()
- setOpacity()
- setOptionalContentGroup()
- setOutlineColor()
- setOutlineWidth()
- setPadding()
- setPaddingBottom()
- setPaddingLeft()
- setPaddingRight()
- setPaddingTop()
- setRenderingMode()
- setText()
- setTextColor()
- setTextWidth()
- setUnderline()
- setUnderlineColor()
- setVisibility()
- setWidth()
- setWordSpacing()
- stamp()
- updateCacheCounter()
Constants
VISIBILITY_ALL
Visibility constant
VISIBILITY_PRINT
Visibility constant
VISIBILITY_VIEW
Visibility constant
Properties
$_dataCache
$_opacityGs
Graphic state objects for handling transparency
Array of SetaPDF_Core_Resource_ExtGState
objects
Methods
__construct()
The constructor.
Parameters
- $font : SetaPDF_Core_Font_FontInterface
The font type of the text
- $fontSize : integer|float
The font size of the text
_cacheStampData()
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()
Method which is called after the main stamp method is executed.
Parameters
- $document : SetaPDF_Core_Document
- $page : SetaPDF_Core_Document_Page
- $stampData : array
_preStamp()
Method which is called before the main stamp method is executed.
Parameters
- $document : SetaPDF_Core_Document
- $page : SetaPDF_Core_Document_Page
- $stampData : array
_putAction()
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()
Writes the text content of this stamp onto the canvas.
Parameters
- $document : SetaPDF_Core_Document
- $page : SetaPDF_Core_Document_Page
- $stampData : array
Exceptions
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_Font_Exception
Throws SetaPDF_Core_Type_Exception
_stampByCache()
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
getAlign()
Get the text alignment.
Proxy method to SetaPDF_Core_Text_Block::getAlign()
of the text block instance.
getBackgroundColor()
Get the background color object.
Proxy method to SetaPDF_Core_Text_Block::getBackgroundColor()
of the text block instance.
getBorderColor()
Get the border color object.
If no border color is defined the a greyscale black color will be returned.
Proxy method to SetaPDF_Core_Text_Block::getBorderColor()
of the text block instance.
getBorderWidth()
Get the border width.
Proxy method to SetaPDF_Core_Text_Block::getBorderWidth()
of the text block instance.
getCharSpacing()
Get the character spacing value.
Proxy method to SetaPDF_Core_Text_Block::getCharSpacing()
of the text block instance.
getFont()
Get the current font object.
Proxy method to SetaPDF_Core_Text_Block::getFont()
of the text block instance.
getFontSize()
Get the font size.
Proxy method to SetaPDF_Core_Text_Block::getFontSize()
of the text block instance.
getHeight()
Get the height of this stamp.
Calculation is done by number of lines, line-height and top and bottom padding values.
Proxy method to SetaPDF_Core_Text_Block::getHeight()
of the text block instance.
See
getLineHeight()
Get the line height / leading.
Proxy method to SetaPDF_Core_Text_Block::getLineHeight()
of the text block instance.
getOptionalContentGroup()
Get the optional content group for this stamp.
getOriginX()
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()
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
getOutlineColor()
Get the texts outline color object.
If no outline color is defined the a greyscale black color will be returned. The outline color is only used at specific rendering modes.
Proxy method to SetaPDF_Core_Text_Block::getOutlineColor()
of the text block instance.
See
getOutlineWidth()
Get the outline width.
The outline width is only used at specific rendering modes.
Proxy method to SetaPDF_Core_Text_Block::getOutlineWidth()
of the text block instance.
getPaddingBottom()
Get the bottom padding.
Proxy method to SetaPDF_Core_Text_Block::getPaddingBottom()
of the text block instance.
getPaddingLeft()
Get the left padding.
Proxy method to SetaPDF_Core_Text_Block::getPaddingLeft()
of the text block instance.
getPaddingRight()
Get the right padding.
Proxy method to SetaPDF_Core_Text_Block::getPaddingRight()
of the text block instance.
getPaddingTop()
Get the top padding.
Proxy method to SetaPDF_Core_Text_Block::getPaddingTop()
of the text block instance.
getRenderingMode()
Get the defined rendering mode.
Proxy method to SetaPDF_Core_Text_Block::getRenderingMode()
of the text block instance.
getText()
Get the text.
Proxy method to SetaPDF_Core_Text_Block::getText()
of the text block instance.
Parameters
- $encoding : string
The encoding of the text
getTextColor()
Get the text color object.
Proxy method to SetaPDF_Core_Text_Block::getTextColor()
of the text block instance.
getUnderline()
Gets whether to draw an underline or not.
Proxy method to {@Link SetaPDF_Core_Text_Block::getUnderline()} of the text block instance.
getUnderlineColor()
Get the underline color object.
Proxy method to {@Link SetaPDF_Core_Text_Block::getUnderlineColor()} of the text block instance.
getWidth()
Get the width of the stamp object.
This method returns the complete width of the stamp object.
The value set in setWidth() may be differ to the one returned by this method because of padding values.
Proxy method to SetaPDF_Core_Text_Block::getWidth()
of the text block instance.
See
getWordSpacing()
Get the word spacing value.
Proxy method to SetaPDF_Core_Text_Block::getWordSpacing()
of the text block instance.
setAction()
Add an action object to the stamp object.
Parameters
- $action : SetaPDF_Core_Document_Action
The action object
setAlign()
Set the text alignment.
Proxy method to SetaPDF_Core_Text_Block::setAlign()
of the text block instance.
Parameters
- $align : string
The new align
setBackgroundColor()
Set the background color.
Proxy method to SetaPDF_Core_Text_Block::setBackgroundColor()
of the text block instance.
Parameters
- $color : SetaPDF_Core_DataStructure_Color|int|float|string|array|SetaPDF_Core_Type_Array|null
The new background color
See
setBorderColor()
Set the border color.
Proxy method to SetaPDF_Core_Text_Block::setBorderColor()
of the text block instance.
Parameters
- $color : SetaPDF_Core_DataStructure_Color|int|float|string|array|SetaPDF_Core_Type_Array|null
The new border color
See
setBorderWidth()
Set the border width.
Proxy method to SetaPDF_Core_Text_Block::setBorderWidth()
of the text block instance.
Parameters
- $borderWidth : float|integer
The new border width
setCharSpacing()
Set the character spacing value.
Proxy method to SetaPDF_Core_Text_Block::setCharSpacing()
of the text block instance.
Parameters
- $charSpacing : number
The new char spacing
setFont()
Set the font object and size.
Proxy method to SetaPDF_Core_Text_Block::setFont()
of the text block instance.
Parameters
- $font : SetaPDF_Core_Font_FontInterface
The new font type
- $fontSize : null|number
The new font size
setFontSize()
Set the font size.
Proxy method to SetaPDF_Core_Text_Block::setFontSize()
of the text block instance.
Parameters
- $fontSize : number
The new font size
setLineHeight()
Set the line height / leading.
Proxy method to SetaPDF_Core_Text_Block::setLineHeight()
of the text block instance.
Parameters
- $lineHeight : float|integer|null
The new line height
setOpacity()
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
setOutlineColor()
Set the texts outline color.
Only used with a specific text rendering mode.
Proxy method to SetaPDF_Core_Text_Block::setOutlineColor()
of the text block instance.
Parameters
- $color : SetaPDF_Core_DataStructure_Color|int|float|string|array|SetaPDF_Core_Type_Array|null
The new outline color
See
setOutlineWidth()
Set the outline width.
The outline width is only used at specific rendering modes.
Proxy method to SetaPDF_Core_Text_Block::setOutlineWidth()
of the text block instance.
Parameters
- $outlineWidth : float
The new outline width.
setPadding()
Set the padding.
Proxy method to SetaPDF_Core_Text_Block::setPadding()
of the text block instance.
Parameters
- $padding : number
The new padding
setPaddingBottom()
Set the bottom padding.
Proxy method to SetaPDF_Core_Text_Block::setPaddingBottom()
of the text block instance.
Parameters
- $paddingBottom : number
The new padding bottom
setPaddingLeft()
Set the left padding.
Proxy method to SetaPDF_Core_Text_Block::setPaddingLeft()
of the text block instance.
Parameters
- $paddingLeft : number
The new padding left
setPaddingRight()
Set the right padding.
Proxy method to SetaPDF_Core_Text_Block::setPaddingRight()
instance.
Parameters
- $paddingRight : number
The new padding right
setPaddingTop()
Set the top padding.
Proxy method to SetaPDF_Core_Text_Block::setPaddingTop()
of the text block instance.
Parameters
- $paddingTop : number
The new padding top
setRenderingMode()
Set the rendering mode.
Proxy method to SetaPDF_Core_Text_Block::setRenderingMode()
of the text block instance.
Parameters
- $renderingMode : integer
The new rendering mode
See
setText()
Set the text.
Proxy method to SetaPDF_Core_Text_Block::setText()
of the text block instance.
Parameters
- $text : string
The new text
- $encoding : string
The encoding of the text
setTextColor()
Set the text color.
Proxy method to SetaPDF_Core_Text_Block::setTextColor()
of the text block instance.
Parameters
- $color : SetaPDF_Core_DataStructure_Color|int|float|string|array|SetaPDF_Core_Type_Array|null
The new text color
See
setTextWidth()
Set the width of the text of the stamp.
Proxy method to SetaPDF_Core_Text_Block::setTextWidth()
of the text block instance.
Parameters
- $width : float|integer
The new width
setUnderline()
Set whether to draw an underline or not.
Proxy method to {@Link SetaPDF_Core_Text_Block::setUnderline()} of the text block instance.
Parameters
- $underline : boolean
setUnderlineColor()
Set the underline color.
Proxy method to {@Link SetaPDF_Core_Text_Block::setUnderlineColor()} of the text block instance.
Parameters
- $color : SetaPDF_Core_DataStructure_Color|int|float|string|array|SetaPDF_Core_Type_Array|null
The new underline color
See
setVisibility()
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()
WARNING: This method is marked as deprecated!
Use setTextWidth() instead.
Parameters
- $width : integer|float
See
setWordSpacing()
Set the word spacing value.
Proxy method to SetaPDF_Core_Text_Block::setWordSpacing()
of the text block instance.
Parameters
- $wordSpacing : number
The new word spacing
stamp()
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