Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
08e88f0
feat: Start to implement jeidison/pdf-signe
vitormattos Feb 22, 2024
6b5aecb
chore: Start to implement jeidison/pdf-signe
vitormattos Feb 22, 2024
42f3af4
chore: remove code of JSignPdf
vitormattos May 17, 2024
7868cd5
fix: remove duplciated import
vitormattos Mar 3, 2026
b52df59
fix: update after rebase
vitormattos Mar 3, 2026
1f4ab81
chore: move file and make more compatible with LibreSign
vitormattos Mar 3, 2026
96cfe7d
chore: update to vue3
vitormattos Mar 3, 2026
587be10
fix: convert coordinates to PHPNativeHandler
vitormattos Mar 3, 2026
14eb611
fix: adjust text spacing in PhpNativeHandler signature appearance
vitormattos Mar 3, 2026
606f0e8
refactor: use constant for RENDER_MODE_GRAPHIC_ONLY in JSignPdfHandler
vitormattos Mar 3, 2026
e0f4ed9
fix: use server timezone for ServerSignatureDate in PhpNativeHandler
vitormattos Mar 3, 2026
faf8ba9
refactor: remove ServerSignatureDate from base signature params
vitormattos Mar 3, 2026
6d5d04b
fix: use user timezone for LocalSignerSignatureDateTime
vitormattos Mar 3, 2026
03d747b
refactor: use constant for RENDER_MODE_GRAPHIC_ONLY in SignatureTextS…
vitormattos Mar 3, 2026
0b4c556
feat: add RENDER_MODE_GRAPHIC_ONLY constant
vitormattos Mar 3, 2026
f91c343
feat(settings/admin): expose signature_engine in initial state
vitormattos Mar 4, 2026
ac9bd9a
refactor(signature-text): remove unused SignerElementsService import
vitormattos Mar 4, 2026
74877fe
refactor(php-native-handler): replace Imagick composition with PDF xO…
vitormattos Mar 4, 2026
ea35bec
fix(install): skip JSignPdf-specific steps when engine is not JSignPdf
vitormattos Mar 4, 2026
7780dcd
chore: point signer-php to vitormattos fork feat/visible-signature-ap…
vitormattos Mar 4, 2026
bb6483b
test(php-native-handler): add business-rule tests for rendering logic
vitormattos Mar 4, 2026
a6e44c0
test(sign-file-service): add tests for PageDimensions propagation in …
vitormattos Mar 4, 2026
94caae5
fix: cs
vitormattos Mar 4, 2026
844607a
fix: add SPDX header
vitormattos Mar 4, 2026
d7160fc
fix: SPDX year
vitormattos Mar 4, 2026
96aa37c
fix(signature-engine): constrain NcSelect width with align-items: fle…
vitormattos Mar 4, 2026
4cb91b6
fix: prevent error whem metadata is null
vitormattos Mar 4, 2026
bc17180
test(SigningRequirementValidator): add failing test for createSignatu…
vitormattos Mar 4, 2026
66d0e3e
fix(SigningRequirementValidator): require drawing even without placed…
vitormattos Mar 4, 2026
e9ea794
fix(Sign): show drawing prompt in GRAPHIC_ONLY mode without placed el…
vitormattos Mar 4, 2026
b0f7a52
feat(Settings): register CollectMetadata component
vitormattos Mar 4, 2026
45773b0
fix(SignFileService): include placed elements when signer submits no …
vitormattos Mar 4, 2026
c23b529
test(SignFileServiceTest): regression for clickToSign with placed ele…
vitormattos Mar 4, 2026
aaa1d66
fix(JSignPdfHandler): guard mergeBackgroundWithSignature against empt…
vitormattos Mar 4, 2026
3186c96
test(JSignPdfHandlerTest): regression for empty signature image with …
vitormattos Mar 4, 2026
eda0fe5
fix(PhpNativeHandler): fix stamp rendering for GRAPHIC_ONLY and SIGNA…
vitormattos Mar 4, 2026
4718a1a
test(PhpNativeHandlerTest): regressions for GRAPHIC_ONLY and SIGNAME …
vitormattos Mar 4, 2026
cbd191e
fix(PhpNativeHandler): reduce line height to 1.0 to match JSignPdf sp…
vitormattos Mar 4, 2026
6ab948c
test(PhpNativeHandlerTest): update name-centering assertion for 1.0 l…
vitormattos Mar 4, 2026
01e0c67
test(Sign): regression for needCreateSignature with no placed element…
vitormattos Mar 4, 2026
04d8711
fix(Sign): restore visibleElements check in needCreateSignature to av…
vitormattos Mar 4, 2026
25136ab
fix(SigningRequirementValidator): remove signerHasSignRequest shortcu…
vitormattos Mar 4, 2026
b5d1f89
fix(Sign): remove signerHasSignRequest computed and stop passing it t…
vitormattos Mar 4, 2026
6bb2e03
test(SigningRequirementValidator): assert needsCreateSignature is fal…
vitormattos Mar 4, 2026
29ab607
feat: rename PHP native engine label to Native with translator comment
vitormattos Mar 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,15 @@
"OCA\\Libresign\\Tests\\Fixtures\\": "tests/php/fixtures/"
}
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/vitormattos/pdf-signer-php"
}
],
"require": {
"cweagans/composer-patches": "^2.0",
"jeidison/signer-php": "dev-feat/visible-signature-appearance",
Comment thread
vitormattos marked this conversation as resolved.
"phpseclib/phpseclib": "^3.0"
}
}
109 changes: 108 additions & 1 deletion composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 8 additions & 4 deletions lib/Handler/SignEngine/JSignPdfHandler.php
Original file line number Diff line number Diff line change
Expand Up @@ -366,20 +366,24 @@ private function signUsingVisibleElements(string $normalizedPdf, string $hashAlg
$params['--bg-path'] = $signatureImagePath;
}
} elseif ($params['--l2-text'] === '""') {
if ($backgroundPathForElement) {
if ($backgroundPathForElement && $signatureImagePath) {
$params['--bg-path'] = $this->mergeBackgroundWithSignature(
$backgroundPathForElement,
$signatureImagePath,
$this->normalizeScaleFactor($scaleFactor),
);
} else {
} elseif ($backgroundPathForElement) {
$params['--bg-path'] = $backgroundPathForElement;
} elseif ($signatureImagePath) {
$params['--bg-path'] = $signatureImagePath;
}
} else {
if ($renderMode === SignerElementsService::RENDER_MODE_GRAPHIC_AND_DESCRIPTION) {
$params['--render-mode'] = SignerElementsService::RENDER_MODE_GRAPHIC_AND_DESCRIPTION;
$params['--bg-path'] = $backgroundPathForElement;
$params['--img-path'] = $signatureImagePath;
if ($signatureImagePath) {
$params['--img-path'] = $signatureImagePath;
}
} elseif ($renderMode === SignerElementsService::RENDER_MODE_SIGNAME_AND_DESCRIPTION) {
$params['--render-mode'] = SignerElementsService::RENDER_MODE_GRAPHIC_AND_DESCRIPTION;
$params['--bg-path'] = $backgroundPathForElement;
Expand Down Expand Up @@ -586,7 +590,7 @@ private function parseSignatureText(): array {

public function getSignatureText(): string {
$renderMode = $this->signatureTextService->getRenderMode();
if ($renderMode !== 'GRAPHIC_ONLY') {
if ($renderMode !== SignerElementsService::RENDER_MODE_GRAPHIC_ONLY) {
$data = $this->parseSignatureText();
$signatureText = '"' . str_replace(
['"', '$'],
Expand Down
Loading
Loading