1
0
Fork 0

Compare commits

..

2 Commits

Author SHA1 Message Date
Masin Wiedner fe92ccade4 Updated with new CS command 2025-11-04 11:42:47 +00:00
Masin Wiedner 13e4d0f041 Fix for HTML snippet in pdf creation 2025-11-03 12:40:36 +00:00
3 changed files with 84 additions and 68 deletions

View File

@ -1,6 +1,8 @@
<?php <?php
$CONVERT_CMD = "/usr/local/bin/convert"; $CONVERT_CMD = "/usr/local/bin/convert";
$PDFTK_CMD = "/usr/local/bin/pdftk"; $PDFTK_CMD = "/usr/local/bin/pdftk";
$GS_CMD = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=%s.pdf";
$mailHost = 'mailserver.example.com'; // Specify main and backup server $mailHost = 'mailserver.example.com'; // Specify main and backup server
$mailPort = 587; // Set the SMTP port $mailPort = 587; // Set the SMTP port

View File

@ -2,45 +2,40 @@
ob_start(); ob_start();
session_start(); session_start();
if ($_GET['lst']=='1'){ $get = var_export( $_GET, true);
$request = var_export( $_REQUEST, true);
$session_keys = var_export( array_keys( $_SESSION ), true);
$session = var_export( $_SESSION, true);
$my_log = fopen( "/tmp/my.log", "w" );
#fwrite( $my_log, $get."\n" );
fwrite( $my_log, $request."\n" );
#fwrite( $my_log, $session_keys."\n" );
#fwrite( $my_log, gettype($_SESSION['lst'])."\n" );
#fwrite( $my_log, var_export($_SESSION['lst'], true)."\n" );
#fwrite( $my_log, $session );
fclose( $my_log );
# Query parameter 'lst' is set in download URL after submitting form for
# mailing
if (isset($_GET['lst']) && $_GET['lst']=='1'){
error_log("DOWNLOAD previously generated PDF\n");
$file = "Antrag.pdf"; $file = "Antrag.pdf";
header('Content-Disposition: attachment; filename="'. $file . '"'); header('Content-Disposition: attachment; filename="'. $file . '"');
header('Content-Length: ' . strlen($_SESSION['lst'])); header('Content-Length: ' . strlen($_SESSION['lst']));
echo $_SESSION['lst']; echo $_SESSION['lst'];
die; die;
} }
?>
<html>
<head>
<title>Kostenerstattungsforumlar</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Kube CSS -->
<link rel="stylesheet" href="css/kube.min.css">
<link rel="stylesheet" href="addons/kube-addons.min.css" />
<link rel="stylesheet" href="master.css" />
</head>
<body>
<?php
# starting new form submission
error_log("SUBMIT\n"); error_log("SUBMIT\n");
require "config.php"; require_once "config.php";
require "PHPMailer/PHPMailer.php"; require "PHPMailer/PHPMailer.php";
require "PHPMailer/SMTP.php"; require "PHPMailer/SMTP.php";
require "PHPMailer/Exception.php"; require "PHPMailer/Exception.php";
#$CONVERT_CMD = "/usr/bin/pdftk";
require_once('TCPDF/tcpdf.php'); require_once('TCPDF/tcpdf.php');
class kaformPDF extends TCPDF { class kaformPDF extends TCPDF {
@ -128,13 +123,12 @@ function mkFrontPDF(){
} }
$thtml = mkTable(); $thtml = mkTable();
// create new PDF document // create new PDF document
$pdf = new kaformPDF( $pdf = new kaformPDF(
PDF_PAGE_ORIENTATION, PDF_UNIT, $pageLayout /*PDF_PAGE_FORMAT*/, PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,
# PDF_PAGE_ORIENTATION, PDF_UNIT, $pageLayout /*PDF_PAGE_FORMAT*/,
true, 'UTF-8', false); true, 'UTF-8', false);
// set document information // set document information
@ -423,11 +417,13 @@ $resultnam = tempnam("/tmp","karesult");
$cmd = "$PDFTK_CMD"; #$cmd = "$PDFTK_CMD";
foreach ($pdfs as $filename){ #foreach ($pdfs as $filename){
$cmd .= " $filename"; # $cmd .= " $filename";
} #}
$cmd .= " cat output $resultnam.pdf"; #$cmd .= " cat output $resultnam.pdf";
$cmd = sprintf("$GS_CMD", $resultnam) . " " . join( " ", $pdfs);
error_log("EXEC CMD $cmd"); error_log("EXEC CMD $cmd");
exec ($cmd); exec ($cmd);
@ -435,7 +431,9 @@ exec ($cmd);
$file = "$resultnam.pdf"; $file = "$resultnam.pdf";
if ($_POST['sendmail']=='yes'){ if ($_POST['sendmail']=='yes'){
$subj = "Kostenerstattungsantrag ueber ".calcSum()." ".$_POST['currency']; error_log( "SENDMAIL has been requested");
$subj = sprintf("Kostenerstattungsantrag ueber %s %s", calcSum(), $_POST['currency']);
$mail = new PHPMailer\PHPMailer\PHPMailer(); $mail = new PHPMailer\PHPMailer\PHPMailer();
@ -450,7 +448,6 @@ if ($_POST['sendmail']=='yes'){
$mail->IsSMTP(); $mail->IsSMTP();
$mail->setFrom($mailFrom); $mail->setFrom($mailFrom);
$mail->Subject = $subj; $mail->Subject = $subj;
$mail->addCustomHeader('Auto-Submitted', 'auto-generated'); // comply to RFC 3834 (https://www.iana.org/assignments/auto-submitted-keywords/auto-submitted-keywords.xhtml)
$mail->Body = "Kostenerstattungsantrag ..."; $mail->Body = "Kostenerstattungsantrag ...";
$mail->AddAddress($mailDest); $mail->AddAddress($mailDest);
if ($mailDestCC) { if ($mailDestCC) {
@ -470,34 +467,45 @@ if ($_POST['sendmail']=='yes'){
die; die;
} }
// Store resulting PDF in session store for later retrieval
echo "Dein Antrag wurde versendet.<BR>";
?>
<!-- <div class="is-col">
<button type="button" onclick="downloadDocument(false);"
class="button is-orange"><?=_("Kopie des Antrags herunterladen")?></button>
</div> -->
<?php
echo '<a href="./submit.php?lst=1" target="_blank">Kopie des Antrags herunterladen</a>';
echo "<br>";
echo '<a href="./">
Weiteren Antrag auf Kostenerstattung stellen</a><BR>';
$_SESSION['lst']=file_get_contents("$resultnam.pdf"); $_SESSION['lst']=file_get_contents("$resultnam.pdf");
session_write_close(); session_write_close();
$message = <<<EOS
<p>Dein Antrag wurde versendet.</p>
<p><a href="./submit.php?lst=1" target="_blank">Kopie des Antrags herunterladen</a></p>
<p><a href="./">Weiteren Antrag auf Kostenerstattung stellen</a></p>
EOS;
die; // die; // Form has been sent, HTML output has been generated
} else {
error_log( "DOWNLOAD has been requested");
$dl_filename = sprintf( "%s_%s.pdf", "Antrag", (new DateTime())->format('Y-m-d_G-i-s') );
header('Content-Disposition: attachment; filename="'. basename($dl_filename) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
$message = <<<EOS
<p>Dein Antrag wurde erstellt, du musst ihn nur noch speichern.</p>
<p><a href="./">Weiteren Antrag auf Kostenerstattung stellen</a></p>
EOS;
} }
$file = "$resultnam.pdf";
header('Content-Disposition: attachment; filename="'. basename($file) . '"');
header('Content-Length: ' . filesize($file));
readfile($file);
?> ?>
<html>
<head>
<title>Kostenerstattungsforumlar</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Kube CSS -->
<link rel="stylesheet" href="css/kube.min.css">
<link rel="stylesheet" href="addons/kube-addons.min.css" />
<link rel="stylesheet" href="master.css" />
</head>
<body>
<?php echo $message; ?>
<script src="js/kube.min.js"></script> <script src="js/kube.min.js"></script>
<script src="kaform.js"></script> <script src="kaform.js"></script>
<script src="addons/upload/kube.upload.min.js"></script> <script src="addons/upload/kube.upload.min.js"></script>
@ -507,4 +515,10 @@ readfile($file);
</body> </body>
</html> </html>
<?php
error_log( "flush OUTPUT_BUFFER and end buffering" );
ob_end_flush();
die();
?>