setasign\SetaPDF2\Signer
Signer The main class of the SetaPDF-Signer Component
File: /SetaPDF v2/Signer/Signer.php
Old class name (alias):
\SetaPDF_Signer
Class hierarchy
Summary
Methods
- __construct()
- _addDocMp()
- _callSecHandlerCallback()
- _checkCertificationLevel()
- _createSignatureDictionary()
- _createTimestampSignatureDictionary()
- _ensureSignatureField()
- _prepareTmpDocument()
- _updateAcroForm()
- addSignatureField()
- addTimeStamp()
- cleanUp()
- createSignature()
- createTimestampSignature()
- getAllowSignatureContentLengthChange()
- getAppearance()
- getCertificationLevel()
- getContactInfo()
- getLocation()
- getName()
- getReason()
- getSignatureContentLength()
- getSignatureField()
- getSignatureProperty()
- getTimeOfSigning()
- getTimestampModule()
- preSign()
- preTimestamp()
- saveSignature()
- setAllowSignatureContentLengthChange()
- setAppearance()
- setCertificationLevel()
- setContactInfo()
- setLocation()
- setName()
- setReason()
- setSignatureContentLength()
- setSignatureFieldName()
- setSignatureProperty()
- setTimeOfSigning()
- setTimestampModule()
- sign()
- timestamp()
Constants
CERTIFICATION_LEVEL_FORM_FILLING
Certification level constant
CERTIFICATION_LEVEL_FORM_FILLING_AND_ANNOTATIONS
Certification level constant
CERTIFICATION_LEVEL_NONE
Certification level constant
CERTIFICATION_LEVEL_NO_CHANGES_ALLOWED
Certification level constant
PROP_CONTACT_INFO
Property constant
PROP_LOCATION
Property constant
PROP_NAME
PROP_REASON
Property constant
PROP_TIME_OF_SIGNING
Property constant
VERSION
Properties
$_allowSignatureContentLengthChange
Defines if the signatureContentLength property can be changed automatically, if a signature value doesn't fit into the reserved space.
$_byteRange
The byte range value
$_document
Document which shall be signed
$_placeHolderByteOffset
The byte offset position of the place holder/reserved space
$_secHandlerCallback
The callback for authenticating at the security handler of the document
$_tempDocument
A temporary instance of the signed document
Static Methods
getCertificationLevelByDocument()
Check a PDF document for a certification signature and its level
Parameters
- $document : \SetaPDF_Core_Document
Return Values
The certification level or null if the document has no certification signature.
Exceptions
getSignatureFieldNames()
Returns all signature field names.
Parameters
- $document : \SetaPDF_Core_Document
Exceptions
Throws \setasign\SetaPDF2\Core\SecHandler\Exception
Throws \setasign\SetaPDF2\Core\Type\Exception
Throws \setasign\SetaPDF2\Core\Type\IndirectReference\Exception
Methods
__construct()
The constructor.
If the passed document is protected by a security handler it is possible to pass a callback as second parameter that will be called if an authentication is needed.
Parameters
- $document : \SetaPDF_Core_Document
The document instance
- $secHandlerCallback : ?callback
A callback which should auth on a security handler (if needed). The callback will be called with two parameters: The first parameter will be the security handler and the second parameter is the current document instance. It should return true or false whether the authentication was successful or not.
Exceptions
_addDocMp()
Adds the document modification detection and prevention data.
Parameters
- $dictionary : \SetaPDF_Core_Type_Dictionary
_callSecHandlerCallback()
Calls a defined callback that should authenticate on the documents security handler.
Parameters
- $document : \SetaPDF_Core_Document
The document instance
Exceptions
_checkCertificationLevel()
Verifies if the defined certification level can be applied.
Certification signatures can only be applied if the document has no other existing signature.
Exceptions
Throws Exception
Throws \setasign\SetaPDF2\Core\Type\IndirectReference\Exception
_createSignatureDictionary()
?\SetaPDF_Signer_Signature_DictionaryInterface $module = null
Creates the signature dictionary.
Parameters
- $field : \SetaPDF_Signer_SignatureField
The signature field
- $module : ?\SetaPDF_Signer_Signature_DictionaryInterface
_createTimestampSignatureDictionary()
?\SetaPDF_Signer_Signature_DictionaryInterface $module = null
Creates the signature dictionary.
Parameters
- $field : \SetaPDF_Signer_SignatureField
The signature field
- $module : ?\SetaPDF_Signer_Signature_DictionaryInterface
_ensureSignatureField()
Ensures a valid signature field instance.
Parameters
- $document : \SetaPDF_Core_Document
The document instance
- $returnFieldInstance : bool
If true the field instance will be returned, otherwise null will be returned.
Exceptions
Throws Exception
_prepareTmpDocument()
\SetaPDF_Signer_TmpDocument $tmpDocument,
string $path,
?\SetaPDF_Signer_Signature_DictionaryInterface $module = null
Prepares the temporary document instance.
Parameters
- $type : string
- $tmpDocument : \SetaPDF_Signer_TmpDocument
- $path : string
- $module : ?\SetaPDF_Signer_Signature_DictionaryInterface
Exceptions
Throws \setasign\SetaPDF2\Core\Exception
Throws Exception
_updateAcroForm()
addSignatureField()
int $pageNumber = 1,
int|string $xOrPosition = 0,
int|array $yOrTranslate = 0,
int $width = 0,
int $height = 0
Proxy method for SignatureField::add().
Parameters
- $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 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 \setasign\SetaPDF2\Core\Exception
Throws \setasign\SetaPDF2\Core\SecHandler\Exception
Throws \setasign\SetaPDF2\Core\Type\Exception
Throws \setasign\SetaPDF2\Core\Type\IndirectReference\Exception
See
addTimeStamp()
Forwards the signature to a timestamp module and merges the result into the signature container.
Parameters
- $signature : string
- $tmpDocument : \SetaPDF_Signer_TmpDocument
Exceptions
Throws Exception
createSignature()
Creates a signature based on a temporary document instance and a signature module.
Parameters
- $tmpDocument : \SetaPDF_Signer_TmpDocument
- $module : \SetaPDF_Signer_Signature_Module_ModuleInterface
Exceptions
Throws Exception
See
createTimestampSignature()
Creates a timestamp signature based on a temporary document instance.
The timestamp module has to be added to the signer instance through the setTimestampModule() method.
Parameters
- $tmpDocument : \SetaPDF_Signer_TmpDocument
Exceptions
Throws Exception
See
getAllowSignatureContentLengthChange()
Get the flag specifying whether the signature content length (reserved space) could be changed automatically ot not.
getCertificationLevel()
Get the certification level.
Possible values are defined in the Signer::CERTIFICATION_LEVEL_* constants.
See
getContactInfo()
Get the information provided by the signer to enable a recipient to contact the signer to verify the signature.
Return Values
If no contact info exist FALSE will be returned. Otherwise, the value will be returned.
See
getLocation()
Get the CPU host name or physical location of the signing.
Return Values
If no location exist FALSE will be returned. Otherwise the value will be returned.
See
getName()
Get the name of the person or authority signing the document.
Return Values
If no name exist FALSE will be returned. Otherwise the value will be returned.
See
getReason()
Get the reason for the signing.
Return Values
If no name exist FALSE will be returned. Otherwise the value will be returned.
See
getSignatureContentLength()
Get the signature content length that will be used to reserve space for the final signature.
getSignatureField()
Proxy method to SignatureField::get().
Parameters
- $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 \setasign\SetaPDF2\Core\Exception
Throws \setasign\SetaPDF2\Core\SecHandler\Exception
Throws \setasign\SetaPDF2\Core\Type\Exception
Throws \setasign\SetaPDF2\Core\Type\IndirectReference\Exception
Throws Exception
See
getSignatureProperty()
Get a signature property.
Parameters
- $name : string
See and use Signer::PROP_* constants for valid names
Return Values
If the name is not valid FALSE will be returned. Otherwise the value will be returned.
getTimeOfSigning()
preSign()
?\SetaPDF_Signer_Signature_DictionaryInterface $module = null,
int $saveMethod = \setasign\SetaPDF2\Core\Document::SAVE_METHOD_UPDATE
Prepares a temporary document instance to be used further in an asynchronous signature workflow.
Parameters
- $writer : \SetaPDF_Core_Writer_FileInterface
- $module : ?\SetaPDF_Signer_Signature_DictionaryInterface
- $saveMethod : int
The $method parameter passed to the main save() call of the document instance. See \setasign\SetaPDF2\Core\Document::save() method.
Exceptions
Throws Exception
Throws \setasign\SetaPDF2\Core\Exception
See
preTimestamp()
?\SetaPDF_Signer_Signature_DictionaryInterface $module = null,
int $saveMethod = \setasign\SetaPDF2\Core\Document::SAVE_METHOD_UPDATE
Prepares a temporary document instance to be used further in an asynchronous timestamp workflow.
Parameters
- $writer : \SetaPDF_Core_Writer_FileInterface
- $module : ?\SetaPDF_Signer_Signature_DictionaryInterface
- $saveMethod : int
The $method parameter passed to the main save() call of the document instance. See \setasign\SetaPDF2\Core\Document::save() method.*
Exceptions
Throws Exception
Throws \setasign\SetaPDF2\Core\Exception
See
saveSignature()
Add a signature result to the temporary document instance and saves it to the main documents writer instance.
Parameters
- $tmpDocument : \SetaPDF_Signer_TmpDocument
- $signature : string
The PKCS7 byte string to be added to the temporary document.
Exceptions
Throws Exception
Throws Exception\ContentLength
setAllowSignatureContentLengthChange()
Set a flag specifying whether the signature content length (reserved space) could be changed automatically or not.
If this value is set to true and the resulting signature is bigger than the reserved space (defined by Signer::setSignatureContentLength() the signature content length will be increased and the signature process will restart.
Parameters
- $allowSignatureContentLengthChange : bool
The flag status
setAppearance()
Set an appearance instance.
Parameters
- $appearance : ?\SetaPDF_Signer_Signature_Appearance_AbstractAppearance
The appearance instance
setCertificationLevel()
Set the certification level.
Parameters
- $certificationLevel : int
Possible values are defined in the Signer::CERTIFICATION_LEVEL_XXX constants.
See
setContactInfo()
Set the information provided by the signer to enable a recipient to contact the signer to verify the signature.
Parameters
- $contactInfo : string
The contact info in UTF-8 encoding
See
setLocation()
Set the host name or physical location of the signing.
Parameters
- $location : string
The physical location or host name in UTF-8 encoding
See
setName()
Set the name of the person or authority signing the document.
Parameters
- $name : string
The value in UTF-8 encoding
See
setReason()
Set the reason for the signing.
Parameters
- $reason : string
The reason for the signing in UTF-8 encoding
See
setSignatureContentLength()
Set the signature content length that will be used to reserve space for the final signature.
Parameters
- $length : int
The length of the signature content.
setSignatureFieldName()
Set the signature field name.
This can be the name of an existing signature field or an individual name which will be used to create a hidden field automatically.
Parameters
- $fieldName : string
The field name in UTF-8 encoding
setSignatureProperty()
Set a signature property.
Parameters
- $name : string
See and use Signer::PROP_* constants for valid names
- $value : string
The value in UTF-8 encoding
Exceptions
Throws \InvalidArgumentException if the name is not valid
setTimeOfSigning()
Set the time of signing.
Parameters
- $timeOfSigning : string|\DateTime|\SetaPDF_Core_DataStructure_Date
The time of signing in UTF-8 encoding
See
setTimestampModule()
Set a timestamp module.
Parameters
- $module : ?\SetaPDF_Signer_Timestamp_Module_ModuleInterface
The timestamp module instance
sign()
int $saveMethod = \setasign\SetaPDF2\Core\Document::SAVE_METHOD_UPDATE
Digital signs the initial document.
The \setasign\SetaPDF2\Core\Document instance will be temporary saved and finished. It is not possible to work on it further. The final PDF will be passed to the previously attached writer instance, so that the final signed document will be written to the correct writer.
Parameters
- $module : \SetaPDF_Signer_Signature_Module_ModuleInterface
The module instance
- $saveMethod : int
The $method parameter passed to the main save() call of the document instance. See \setasign\SetaPDF2\Core\Document::save() method.
Exceptions
Throws Exception
timestamp()
Adds a document level timestamp.
The \setasign\SetaPDF2\Core\Document instance will be temporary saved and finished. It is not possible to work on it further. The final PDF will be passed to the previously attached writer instance, so that the final signed document will be written to the correct writer.
Parameters
- $saveMethod : int
The $method parameter passed to the main save() call of the document instance. See \setasign\SetaPDF2\Core\Document::save() method.
Return Values
The timestamp token/signature
Exceptions
Throws Exception
Throws Exception\ContentLength