SetaPDF_Signer_SignatureField Helper class to create/handle a signature field
File: /SetaPDF v2/Signer/SignatureField.php
Class hierarchy
Summary
Methods
- __construct()
- cleanUp()
- getAction()
- getAdditionalActions()
- getAnnotationDictionary()
- getAppearance()
- getAppearanceCharacteristics()
- getBorderStyle()
- getColor()
- getContents()
- getDictionary()
- getHeight()
- getHiddenFlag()
- getIndirectObject()
- getInvisibleFlag()
- getLock()
- getLockedContents()
- getLockedFlag()
- getModificationDate()
- getName()
- getNoRotateFlag()
- getNoViewFlag()
- getNoZoomFlag()
- getPrintFlag()
- getQualifiedName()
- getReadOnlyFlag()
- getRect()
- getToggleNoView()
- getType()
- getValue()
- getWidth()
- isAnnotationFlagSet()
- setAction()
- setAnnotationFlags()
- setAppearance()
- setColor()
- setContents()
- setHiddenFlag()
- setInvisibleFlag()
- setLock()
- setLocked()
- setLockedContents()
- setModificationDate()
- setName()
- setNoRotateFlag()
- setNoViewFlag()
- setNoZoomFlag()
- setPrintFlag()
- setReadOnlyFlag()
- setRect()
- setToggleNoView()
- unsetAnnotationFlags()
Constants
- DEFAULT_FIELD_NAME
- LOCK_DOCUMENT_ALL
- LOCK_DOCUMENT_EXCLUDE
- LOCK_DOCUMENT_INCLUDE
- LOCK_DOCUMENT_NONE
- POSITION_CENTER_BOTTOM
- POSITION_CENTER_MIDDLE
- POSITION_CENTER_TOP
- POSITION_LEFT_BOTTOM
- POSITION_LEFT_MIDDLE
- POSITION_LEFT_TOP
- POSITION_RIGHT_BOTTOM
- POSITION_RIGHT_MIDDLE
- POSITION_RIGHT_TOP
- TYPE_3D
- TYPE_CARET
- TYPE_CIRCLE
- TYPE_FILE_ATTACHMENT
- TYPE_FREE_TEXT
- TYPE_HIGHLIGHT
- TYPE_INK
- TYPE_LINE
- TYPE_LINK
- TYPE_MOVIE
- TYPE_POLYGON
- TYPE_POLY_LINE
- TYPE_POPUP
- TYPE_PRINTER_MARK
- TYPE_REDACT
- TYPE_SCREEN
- TYPE_SOUND
- TYPE_SQUARE
- TYPE_SQUIGGLY
- TYPE_STAMP
- TYPE_STRIKE_OUT
- TYPE_TEXT
- TYPE_TRAP_NET
- TYPE_UNDERLINE
- TYPE_WATERMARK
- TYPE_WIDGET
Constants
DEFAULT_FIELD_NAME
The default signature field name
LOCK_DOCUMENT_ALL
Lock value
See
LOCK_DOCUMENT_EXCLUDE
Lock value
See
LOCK_DOCUMENT_INCLUDE
Lock value
See
LOCK_DOCUMENT_NONE
Lock value
See
POSITION_CENTER_BOTTOM
Position constant
POSITION_CENTER_MIDDLE
Position constant
POSITION_CENTER_TOP
Position constant
POSITION_LEFT_BOTTOM
Position constant
POSITION_LEFT_MIDDLE
Position constant
POSITION_LEFT_TOP
Position constant
POSITION_RIGHT_BOTTOM
Position constant
POSITION_RIGHT_MIDDLE
Position constant
POSITION_RIGHT_TOP
Position constant
TYPE_3D
Annotation type
TYPE_CARET
Annotation type
TYPE_CIRCLE
Annotation type
TYPE_FILE_ATTACHMENT
Annotation type
TYPE_FREE_TEXT
Annotation type
TYPE_HIGHLIGHT
Annotation type
TYPE_INK
Annotation type
TYPE_LINE
Annotation type
TYPE_LINK
Annotation type
TYPE_MOVIE
Annotation type
TYPE_POLYGON
Annotation type
TYPE_POLY_LINE
Annotation type
TYPE_POPUP
Annotation type
TYPE_PRINTER_MARK
Annotation type
TYPE_REDACT
Annotation type
TYPE_SCREEN
Annotation type
TYPE_SOUND
Annotation type
TYPE_SQUARE
Annotation type
TYPE_SQUIGGLY
Annotation type
TYPE_STAMP
Annotation type
TYPE_STRIKE_OUT
Annotation type
TYPE_TEXT
Annotation type
TYPE_TRAP_NET
Annotation type
TYPE_UNDERLINE
Annotation type
TYPE_WATERMARK
Annotation type
TYPE_WIDGET
Annotation type
Properties
$_annotationDictionary
The annotation dictionary
Static Methods
_createAnnotationDictionary()
Creates an annotation dictionary with default values.
Parameters
- $rect : SetaPDF_Core_DataStructure_Rectangle|array
- $subtype : string
_removeDocMDP()
Remove the DocMDP entry from the Perms dictionary if it is the value of the given signature field.
Parameters
- $document : SetaPDF_Core_Document
- $field : SetaPDF_Signer_SignatureField
Return Values
Wether the field value was used in the DocMDP entry or not.
Exceptions
Throws SetaPDF_Core_SecHandler_Exception
Throws SetaPDF_Core_Type_Exception
add()
Adds a new signature field to a documents page.
It is possible to position the field relatively to the page boundary by passing a string value to the $xOrPosition parameter.
Additionally it is possible to define own x- and y-values through the desired parameter. Anyhow this will not take care of page rotation.
Parameters
- $document : SetaPDF_Core_Document
- $fieldName : string
The field name in UTF-8 encoding
- $pageNumber : int
The page number on which the signature field shall appear.
- $xOrPosition : int|string
Integer with the x-position or
SetaPDF_Signer_SignatureField::POSITION_XXX
- $yOrTranslate : int|array
Integer with the y-position (if $xOrPosition is an integer) or an array with the keys 'x' and 'y'
- $width : int
Width of the signature field
- $height : int
Height of the signature field
Exceptions
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_SecHandler_Exception
Throws SetaPDF_Core_Type_Exception
byObjectOrDictionary()
Creates an annotation object by an annotation dictionary or its parent object.
Parameters
- $objectOrDictionary : SetaPDF_Core_Type_Dictionary|SetaPDF_Core_Type_IndirectObjectInterface
Exceptions
Throws SetaPDF_Core_Type_Exception
Throws InvalidArgumentException
clear()
Clears the signature from a signature field by its name.
Parameters
- $document : SetaPDF_Core_Document
- $fieldName : string
- $clearAppearance : bool
Define whether the appearance is cleared or not, too.
Exceptions
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_SecHandler_Exception
Throws SetaPDF_Core_Type_Exception
Throws SetaPDF_Core_Type_IndirectReference_Exception
Throws SetaPDF_Signer_Exception
createAnnotationDictionary()
Function to create a signature field annotation dictionary.
Parameters
- $fieldName : string
The field name in UTF-8 encoding.
- $rect : array|SetaPDF_Core_DataStructure_Rectangle
Exceptions
Throws InvalidArgumentException
delete()
Deletes a signature field by its name.
ATTENTION: If there are other signature fields in use their signature will get invalid.
Parameters
- $document : SetaPDF_Core_Document
- $fieldName : string
Exceptions
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_SecHandler_Exception
Throws SetaPDF_Core_Type_Exception
Throws SetaPDF_Core_Type_IndirectReference_Exception
Throws SetaPDF_Signer_Exception
get()
Get a signature field instance and creates it if it is not already available.
If no field is found a hidden field on page one will be created automatically.
Parameters
- $document : SetaPDF_Core_Document
- $fieldName : string
The field name in UTF-8 encoding
- $create : bool
Automatically creates a hidden field if none was found by the specified name
Exceptions
Throws SetaPDF_Core_Exception
Throws SetaPDF_Core_SecHandler_Exception
Throws SetaPDF_Core_Type_Exception
Throws SetaPDF_Core_Type_IndirectReference_Exception
Throws SetaPDF_Signer_Exception
Methods
__construct()
The constructor.
An instance could be created by an existing dictionary, indirect object/reference or by the same parameters as createAnnotationDictionary().
Parameters
- $objectOrDictionary : string|array|SetaPDF_Core_Type_AbstractType|SetaPDF_Core_Type_Dictionary|SetaPDF_Core_Type_IndirectObjectInterface
Exceptions
Throws InvalidArgumentException
Throws SetaPDF_Core_Type_Exception
See
getAction()
Get the action of the annotation.
If no action is defined false will be returned.
Exceptions
Throws SetaPDF_Core_Type_Exception
getAdditionalActions()
Gets the additional actions object instance for this annotation.
getAnnotationDictionary()
WARNING: This method is marked as deprecated!
Get the annotation dictionary.
getAppearance()
Get the annotation appearance stream.
Parameters
- $type : string
- $subName : null|string
Exceptions
Throws InvalidArgumentException
getAppearanceCharacteristics()
Get the appearance characteristics object.
Parameters
- $create : bool
Exceptions
Throws SetaPDF_Core_Type_Exception
getBorderStyle()
Get the border style object.
getColor()
Get the color of the annotation.
getContents()
Get the contents of the annotation.
Parameters
- $encoding : string
getHeight()
Get the height of the annotation.
If the annotation is rotated width and height will be changed accordingly. This can be affected by the $ignoreRotation parameter.
Parameters
- $ignoreRotation : boolean
Exceptions
Throws SetaPDF_Core_Type_Exception
getHiddenFlag()
Checks for the "Hidden" flag.
PDF 32000-1:2008 - Table 165: "If set, do not display or print the annotation or allow it to interact with the user, regardless of its annotation type or whether an annotation handler is available."
getIndirectObject()
Get the indirect object of this annotation.
Parameters
- $document : SetaPDF_Core_Document
getInvisibleFlag()
Checks for the "Invisible" flag.
PDF 32000-1:2008 - Table 165: "If set, do not display the annotation if it does not belong to one of the standard annotation types and no annotation handler is available. If clear, display such an unknown annotation using an appearance stream specified by its appearance dictionary, if any"
getLock()
getLockedContents()
Checks for the "LockedContents" flag.
PDF 32000-1:2008 - Table 165: "If set, do not allow the contents of the annotation to be modified by the user. This flag does not restrict deletion of the annotation or changes to other annotation properties, such as position and size."
getLockedFlag()
Checks the "Locked" flag.
PDF 32000-1:2008 - Table 165: "If set, do not allow the annotation to be deleted or its properties (including position and size) to be modified by the user. However, this flag does not restrict changes to the annotation’s contents, such as the value of a form field."
getModificationDate()
Get the modification date.
Parameters
- $asString : bool
Exceptions
Throws Exception
getName()
Get the name of the annotation.
Parameters
- $encoding : string
getNoRotateFlag()
Checks fo the "NoRotate" flag.
PDF 32000-1:2008 - Table 165: "If set, do not rotate the annotation’s appearance to match the rotation of the page. The upper-left corner of the annotation rectangle shall remain in a fixed location on the page, regardless of the page rotation."
getNoViewFlag()
Checks for the "NoView" flag.
PDF 32000-1:2008 - Table 165: "If set, do not display the annotation on the screen or allow it to interact with the user. The annotation may be printed (depending on the setting of the Print flag) but should be considered hidden for purposes of on-screen display and user interaction."
getNoZoomFlag()
Checks fo the "NoZoom" flag.
PDF 32000-1:2008 - Table 165: "If set, do not scale the annotation’s appearance to match the magnification of the page. The location of the annotation on the page (defined by the upper- left corner of its annotation rectangle) shall remain fixed, regardless of the page magnification."
getPrintFlag()
Checks for the "Print" flag.
PDF 32000-1:2008 - Table 165: "If set, print the annotation when the page is printed. If clear, never print the annotation, regardless of whether it is displayed on the screen."
getQualifiedName()
getReadOnlyFlag()
Checks the "ReadOnly" flag.
PDF 32000-1:2008 - Table 165: "If set, do not allow the annotation to interact with the user. The annotation may be displayed or printed (depending on the settings of the NoView and Print flags) but should not respond to mouse clicks or change its appearance in response to mouse motions.
This flag shall be ignored for widget annotations; its function is subsumed by the ReadOnly flag of the associated form field"
getRect()
Get the rectangle object of this annotation.
getToggleNoView()
Checks for the "ToggleNoView" flag.
PDF 32000-1:2008 - Table 165: "If set, invert the interpretation of the NoView flag for certain events."
getWidth()
Get the width of the annotation.
If the annotation is rotated width and height will be changed accordingly. This can be affected by the $ignoreRotation parameter.
Parameters
- $ignoreRotation : boolean
Exceptions
Throws SetaPDF_Core_Type_Exception
setAction()
Set the action of the annotation.
The action could be an instance of SetaPDF_Core_Document_Action
or a plain dictionary representing
the action.
Parameters
Exceptions
Throws InvalidArgumentException
setAnnotationFlags()
Sets an annotation flag.
Parameters
- $flags : integer
- $set : boolean
Set or unset
setAppearance()
Set the annotation appearance stream.
Parameters
- $xObject : SetaPDF_Core_XObject_Form
- $type : string
- $subState : string|null
setColor()
Set the color of the annotation.
Parameters
- $color : null|bool|int|float|string|array|SetaPDF_Core_DataStructure_Color
setContents()
Set the contents of the annotation.
Parameters
- $contents : string|null
- $encoding : string
setInvisibleFlag()
Set the "Invisible" flag.
Parameters
- $invisible : boolean
See
setLock()
Set if an how the document should be locked after a signature is applied to this field.
NOTICE: Currently only SetaPDF_Signer_SignatureField::LOCK_DOCUMENT_ALL
or none is supported.
Parameters
- $document : SetaPDF_Core_Document
- $action : string|false
A name which indicates if all, none or indiviual fields should be locked or not locked.
- $fields : null|array
Exceptions
Throws SetaPDF_Exception_NotImplemented
Throws SetaPDF_Core_Type_Exception
setLockedContents()
Set the "LockedContents" flag.
Parameters
- $lockedContents : boolean
See
setModificationDate()
Set the modification date.
Parameters
- $date : SetaPDF_Core_DataStructure_Date|DateTime|string|bool
If true is passed, the current date and time will be used.
Exceptions
Throws Exception
setName()
Set the name of the annotation.
The annotation name, a text string uniquely identifying it among all the annotations on its page.
Parameters
- $name : string|null
- $encoding : string
setNoRotateFlag()
Set the "NoRotate" flag.
Parameters
- $noRotate : boolean
See
setReadOnlyFlag()
Set the "ReadOnly" flag.
Parameters
- $readOnly : boolean
See
setRect()
setToggleNoView()
Set the "ToggleNoView" flag.
Parameters
- $toggleNoView : boolean