From cdea8caa5617f0cb77bcbc9803759abd2df50644 Mon Sep 17 00:00:00 2001 From: Niklas Olmes Date: Fri, 24 Apr 2026 19:30:00 +0200 Subject: stipcrm --- dopdf.php | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 dopdf.php (limited to 'dopdf.php') diff --git a/dopdf.php b/dopdf.php new file mode 100644 index 0000000..ca254dc --- /dev/null +++ b/dopdf.php @@ -0,0 +1,202 @@ + +close(); + exit(0); +} + +$data = [ + 'organisation' => $_POST['organisation'], + 'anrede' => $_POST['anrede'], + 'anrede_briefkopf' => $_POST['anrede_briefkopf'], + 'titel' => $_POST['titel'], + 'vorname' => $_POST['vorname'], + 'nachname' => $_POST['nachname'], + 'strasse' => $_POST['strasse'], + 'adresszusatz' => $_POST['adresszusatz'], + 'plz' => $_POST['plz'], + 'ort' => $_POST['ort'], + 'betreff' => $_POST['subject'], + 'text' => $_POST['html'], + 'datum' => $_POST['date'], + 'data' => $_POST['data'], + 'fn' => $_POST['fn'] +]; + +define('NUMERAL_SIGN', 'minus'); +define('NUMERAL_HUNDREDS_SUFFIX', 'hundert'); +define('NUMERAL_INFIX', 'und'); + +$lNumeral = array('null', 'ein', 'zwei', 'drei', 'vier', + 'fünf', 'sechs', 'sieben', 'acht', 'neun', + 'zehn', 'elf', 'zwölf', 'dreizehn', 'vierzehn', + 'fünfzehn', 'sechzehn', 'siebzehn', 'achtzehn', 'neunzehn'); + +$lTenner = array('', '', 'zwanzig', 'dreißig', 'vierzig', + 'fünfzig', 'sechzig', 'siebzig', 'achtzig', 'neunzig'); + +$lGroupSuffix = array(array('s', ''), + array('tausend ', 'tausend '), + array('e Million ', ' Millionen '), + array('e Milliarde ', ' Milliarden '), + array('e Billion ', ' Billionen '), + array('e Billiarde ', ' Billiarden '), + array('e Trillion ', ' Trillionen ')); + +function num2text($pNumber) +{ + global $lNumeral; + if ($pNumber == 0) { + return $lNumeral[0]; + } elseif ($pNumber < 0) { + return NUMERAL_SIGN . ' ' . num2text_group(abs($pNumber)); + } else { + return num2text_group($pNumber); + } +} + +function num2text_group($pNumber, $pGroupLevel = 0) +{ + global $lNumeral, $lTenner, $lGroupSuffix; + if ($pNumber == 0) { + return ''; + } + $lGroupNumber = $pNumber % 1000; + if ($lGroupNumber == 1) { + $lResult = $lNumeral[1] . $lGroupSuffix[$pGroupLevel][0]; + } elseif ($lGroupNumber > 1) { + $lResult = ''; + $lFirstDigit = floor($lGroupNumber / 100); + if ($lFirstDigit > 0) { + $lResult .= $lNumeral[$lFirstDigit] . NUMERAL_HUNDREDS_SUFFIX; + } + $lLastDigits = $lGroupNumber % 100; + $lSecondDigit = floor($lLastDigits / 10); + $lThirdDigit = $lLastDigits % 10; + if ($lLastDigits == 1) { + $lResult .= $lNumeral[1] . 's'; + } elseif ($lLastDigits > 1 && $lLastDigits < 20) { + $lResult .= $lNumeral[$lLastDigits]; + } elseif ($lLastDigits >= 20) { + if ($lThirdDigit > 0) { + $lResult .= $lNumeral[$lThirdDigit] . NUMERAL_INFIX; + } + $lResult .= $lTenner[$lSecondDigit]; + } + $lResult .= $lGroupSuffix[$pGroupLevel][1]; + } + return num2text_group(floor($pNumber / 1000), $pGroupLevel + 1) . $lResult; +} + +try { + $ddata = json_decode($_POST['data']); + $data['data'] = $ddata; + $data['betrag'] = number_format($ddata->Betrag, 2, ",", "."); + $data['betrag_bs'] = num2text($ddata->Betrag) . ' Euro'; + $data['betrag_datum'] = explode('-', $ddata->Geldeingang)[2] . '.' . explode('-', $ddata->Geldeingang)[1] . '.' . explode('-', $ddata->Geldeingang)[0]; +} catch (Exception $e) { + ; +} + +$template = $_POST['template']; +$template = 'hsrw.twig'; + +$html = $twig->render($template, $data); + +$defaultConfig = (new Mpdf\Config\ConfigVariables())->getDefaults(); +$fontDirs = $defaultConfig['fontDir']; + +$defaultFontConfig = (new Mpdf\Config\FontVariables())->getDefaults(); +$fontData = $defaultFontConfig['fontdata']; + +$mpdf = new Mpdf\Mpdf([ + 'tempDir' => __DIR__ . '/tmp', + 'format' => 'A4', +]); + +//$mpdf->SetImportUse(); +$mpdf->useActiveForms = true; +if (!strstr($template, 'zahlung')) { + $mpdf->SetProtection(array('print')); +} +$mpdf->WriteHTML($html); +$mysqli->close(); + +if (isset($_GET['test'])) { + header("Content-Type: application/pdf"); + $mpdf->Output(); + exit(0); +} + +$fn = $_POST['fn']; + +mkdir("/var/www/uploads/" . $puid . "_"); +$file = "/var/www/uploads/" . $puid . "_/" . $fn . ".pdf"; +$mpdf->Output($file, \Mpdf\Output\Destination::FILE); + +if (isset($_GET['save'])) { + echo "1"; + exit(0); +} + +header("Content-Type: application/pdf"); +readfile($file); +exit(0); + +?> -- cgit v1.3.1