Skip to content

Commit c21c51f

Browse files
authored
Merge pull request #8 from Setasign/support-appearance
Support appearance
2 parents d19ea76 + c823dd5 commit c21c51f

2 files changed

Lines changed: 60 additions & 0 deletions

File tree

examples/appearance-demo.php

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

src/Module.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,14 @@ public function setCertificate($certificate)
9696
$this->padesModule->setCertificate($certificate);
9797
}
9898

99+
/**
100+
* @return \SetaPDF_Signer_X509_Certificate|string
101+
*/
102+
public function getCertificate()
103+
{
104+
return $this->padesModule->getCertificate();
105+
}
106+
99107
/**
100108
* Set the digest algorithm to use when signing.
101109
*

0 commit comments

Comments
 (0)