Skip to content

Commit e1908eb

Browse files
authored
Merge pull request #7 from Setasign/support-appearances
Support appearances
2 parents 72b4590 + c47fae2 commit e1908eb

File tree

2 files changed

+58
-1
lines changed

2 files changed

+58
-1
lines changed

examples/appearance-demo.php

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?php
2+
3+
use Aws\Kms\KmsClient;
4+
use setasign\SetaPDF\Signer\Module\AwsKMS\Module;
5+
6+
require_once __DIR__ . '/../vendor/autoload.php';
7+
8+
$fileToSign = __DIR__ . '/assets/Laboratory-Report.pdf';
9+
$resultPath = 'signed.pdf';
10+
11+
$settings = require 'settings.php';
12+
$region = $settings['region'];
13+
$version = $settings['version'];
14+
$keyId = $settings['keyId'];
15+
$cert = $settings['cert'];
16+
$signatureAlgorithm = $settings['algorithm'];
17+
18+
$kmsClient = new KmsClient([
19+
'region' => $region,
20+
'version' => $version,
21+
]);
22+
$awsKmsModule = new Module($keyId, $kmsClient);
23+
24+
$awsKmsModule->setCertificate($cert);
25+
$awsKmsModule->setSignatureAlgorithm($signatureAlgorithm);
26+
27+
// create a writer instance
28+
$writer = new SetaPDF_Core_Writer_File($resultPath);
29+
// create the document instance
30+
$document = SetaPDF_Core_Document::loadByFilename($fileToSign, $writer);
31+
32+
// create the signer instance
33+
$signer = new SetaPDF_Signer($document);
34+
35+
$field = $signer->addSignatureField(
36+
'Signature',
37+
1,
38+
SetaPDF_Signer_SignatureField::POSITION_RIGHT_TOP,
39+
['x' => -160, 'y' => -100],
40+
180,
41+
60
42+
);
43+
44+
$signer->setSignatureFieldName($field->getQualifiedName());
45+
46+
$appearance = new SetaPDF_Signer_Signature_Appearance_Dynamic($awsKmsModule);
47+
$signer->setAppearance($appearance);
48+
49+
$signer->sign($awsKmsModule);

src/Module.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@ public function setCertificate($certificate)
6767
$this->padesModule->setCertificate($certificate);
6868
}
6969

70+
/**
71+
* @return \SetaPDF_Signer_X509_Certificate|string
72+
*/
73+
public function getCertificate()
74+
{
75+
return $this->padesModule->getCertificate();
76+
}
77+
7078
/**
7179
* @param string $signatureAlgorithm
7280
*/
@@ -169,7 +177,7 @@ public function getCms()
169177
public function createSignature(SetaPDF_Core_Reader_FilePath $tmpPath)
170178
{
171179
// ensure certificate
172-
$certificate = $this->padesModule->getCertificate();
180+
$certificate = $this->getCertificate();
173181
if ($certificate === null) {
174182
throw new \BadMethodCallException('Missing certificate!');
175183
}

0 commit comments

Comments
 (0)