wmdeit_kaform/submit.php

241 lines
6.7 KiB
PHP

<?php
session_start();
$CONVERT_CMD = "/usr/bin/pdftk";
require_once('TCPDF/tcpdf.php');
class kaformPDF extends TCPDF {
//Page header
public function Header() {
}
// // Logo
// $image_file = K_PATH_IMAGES.'logo_example.jpg';
// $this->Image($image_file, 10, 10, 15, '', 'JPG', '', 'T', false, 300, '', false, false, 0, false, false, false);
// // Set font
// $this->SetFont('helvetica', 'B', 20);
// // Title
// $this->Cell(0, 15, '<< TCPDF Example 003 >>', 0, false, 'C', 0, '', 0, false, 'M', 'M');
// }
//
// // Page footer
public function Footer() {
}
// // Position at 15 mm from bottom
// $this->SetY(-15);
// // Set font
// $this->SetFont('helvetica', 'I', 8);
// // Page number
// $this->Cell(0, 10, 'Page '.$this->getAliasNumPage().'/'.$this->getAliasNbPages(), 0, false, 'C', 0, '', 0, false, 'T', 'M');
// }
// }
//
};
function mkFrontPDF(){
// create new PDF document
$pdf = new kaformPDF(
PDF_PAGE_ORIENTATION, PDF_UNIT, $pageLayout /*PDF_PAGE_FORMAT*/,
true, 'UTF-8', false);
// set document information
/* $pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 001');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');
*/
// set default header data
// $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH,
// PDF_HEADER_TITLE.' 001', PDF_HEADER_STRING,
// array(0,64,255), array(0,64,128));
// $pdf->setFooterData(array(0,64,0), array(0,64,128));
// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));
// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);
// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);
// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);
// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
// set some language-dependent strings (optional)
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
require_once(dirname(__FILE__).'/lang/eng.php');
$pdf->setLanguageArray($l);
}
// ---------------------------------------------------------
// set default font subsetting mode
$pdf->setFontSubsetting(true);
// Set font
// dejavusans is a UTF-8 Unicode font, if you only need to
// print standard ASCII chars, you can use core fonts like
// helvetica or times to reduce file size.
$pdf->SetFont('dejavusans', '', 14, '', true);
// Add a page
// This method has several options, check the source code
// documentation for more information.
$pdf->AddPage('P');
// set text shadow effect
$pdf->setTextShadow(array('enabled'=>true, 'depth_w'=>0.2,
'depth_h'=>0.2, 'color'=>array(196,196,196),
'opacity'=>1, 'blend_mode'=>'Normal'));
// calculate the overall summary
$sum = calcSum();
// Set some content to print
$html =
<<<EOD
<h1>Kostenerstattungsantrag &uuml;ber $sum EUR</h1>
<p><b>Projekt: $_POST[project]</b></p>
<p>WMDE Ansprechpartner: $_POST[wmdecontact]</p>
<hr>
<p>
&nbsp;
<br>
Name: $_POST[realname]<br>
E-Mail: $_POST[email]<br>
Telefon: $_POST[phone]
</p>
<hr>
EOD;
// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
// ---------------------------------------------------------
$tn = tempnam("/tmp","kaform");
// Close and output PDF document
// This method has several options, check the source code
// documentation for more information.
$pdf->Output($tn, 'F');
return $tn;
}
function mkSnippedPdf($key){
$pageLayout = array(210,70);
// create new PDF document
# $pdf = new kaformPDF(
# PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT,
# true, 'UTF-8', false);
$pdf = new kaformPDF(
PDF_PAGE_ORIENTATION, PDF_UNIT, $pageLayout /*PDF_PAGE_FORMAT*/,
true, 'UTF-8', false);
$pdf->AddPage('L');
$pos = array_search($key,array_keys($_POST['desc']))+1;
echo "<br>Make Snipped for $key -> $pos<br>";
# $mydesk = $_POST[desc][$key];
#
$amount = $_POST['amount'][$key];
$desc = $_POST['desc'][$key];
$html =
<<<EOD
<h1>Posi. $pos</h1>
<p>$desc</p><br>
<p>$amount EUR</p><br>
EOD;
// Print text using writeHTMLCell()
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
$tn = tempnam("/tmp","kaform");
// Close and output PDF document
// This method has several options, check the source code
// documentation for more information.
$pdf->Output("$tn", 'F');
return $tn;
}
//var_dump($_POST);
function convert($row) {
$r = array();
foreach ($_SESSION['files'] as $filename => $file){
if ($file['row'] != $row)
continue;
$tn = tempnam("/tmp","kaform");
file_put_contents("$tn",$file['content']);
array_push($r,"$tn");
}
return $r;
}
function calcSum(){
$sum =0;
foreach ($_POST['amount'] as $val){
var_dump($val);
$sum += floatval(str_replace(",",".",$val));
}
return $sum;
}
$pdfs = array();
// Applicatoin starts here
$p = mkFrontPDF();
array_push($pdfs,$p);
foreach ($_POST['desc'] as $key => $val) {
echo "DREESK KEY VAL $key --> $val<br>";
$p = mkSnippedPDF($key);
array_push($pdfs,$p);
$pr = convert($key);
$pdfs = array_merge($pdfs,$pr);
}
var_dump($pdfs);
$cmd = "$CONVERT_CMD";
foreach ($pdfs as $filename){
$cmd .= " $filename";
}
$cmd .= " cat output /tmp/result.pdf";
exec ($cmd);
echo "CMD: $cmd<br>";