From c452c325278599cf53ba7fcf59f917a24a03fb53 Mon Sep 17 00:00:00 2001 From: Jb Lm Date: Thu, 31 Mar 2022 12:15:26 +0200 Subject: [PATCH] add /signature/@hash/pdf route for concatenation of multiple signature --- app.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/app.php b/app.php index 1b054cf..208952c 100644 --- a/app.php +++ b/app.php @@ -185,4 +185,30 @@ $f3->route('POST /organize', } ); -return $f3; \ No newline at end of file +$f3->route('GET /signature/@hash/pdf', + function($f3) { + $targetDir = $f3->get('STORAGE').$f3->get('PARAMS.hash'); + $files = array_diff(scandir($targetDir), array('..', '.'));; + $original = null; + $originalFilename = null; + $layers = []; + foreach($files as $file) { + if (strpos($file, 'svg.pdf') === false) { + $original = $targetDir.'/'.$file; + $originalFilename = $file; + } else { + $layers[] = $targetDir.'/'.$file; + } + } + if (!$original) { + $f3->error(404); + } + if (!$layers||1==1) { + Web::instance()->send($original, null, 0, TRUE, str_replace('.pdf', '_signe.pdf', $originalFilename)); + } + shell_exec(sprintf("pdftk %s multibackground %s output %s", implode(' ', $layers), $original, str_replace('.pdf', '_signe.pdf', $original))); + Web::instance()->send(str_replace('.pdf', '_signe.pdf', $original), null, 0, TRUE, str_replace('.pdf', '_signe.pdf', $originalFilename)); + } +); + +return $f3;