From 87f36491eeb01f3221ae25fa51d893a271c96155 Mon Sep 17 00:00:00 2001 From: Christian Paminger Date: Tue, 21 Aug 2007 12:20:19 +0000 Subject: [PATCH] --- cis/pdfExport.php | 201 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 cis/pdfExport.php diff --git a/cis/pdfExport.php b/cis/pdfExport.php new file mode 100644 index 000000000..ab95e077c --- /dev/null +++ b/cis/pdfExport.php @@ -0,0 +1,201 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/* Erstellt einen Lehrauftrag im PDF Format + * + * Erstellt ein XML File Transformiert dieses mit + * Hilfe der XSL-FO Vorlage aus der DB und generiert + * daraus ein PDF (xslfo2pdf) + */ +require_once('../vilesci/config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/benutzerberechtigung.class.php'); +require_once('../include/xslfo2pdf/xslfo2pdf.php'); +require_once('../include/akte.class.php'); + +// Datenbank Verbindung +if (!$conn = pg_pconnect(CONN_STRING)) + $error_msg='Es konnte keine Verbindung zum Server aufgebaut werden!'; + +$user = get_uid(); +loadVariables($conn, $user); + +//Parameter holen +if(isset($_GET['xml'])) + $xml=$_GET['xml']; +else + die('Fehlerhafte Parameteruebergabe'); +if(isset($_GET['xsl'])) + $xsl=$_GET['xsl']; +else + die('Fehlerhafte Parameteruebergabe'); +if(isset($_GET['xsl_stg_kz'])) + $xsl_stg_kz=$_GET['xsl_stg_kz']; +else + $xsl_stg_kz=0; + +//Parameter setzen +$params='?xmlformat=xml'; +if(isset($_GET['uid'])) + $params.='&uid='.$_GET['uid']; +if(isset($_GET['person_id'])) + $params.='&person_id='.$_GET['person_id']; +if(isset($_GET['buchungsnummern'])) + $params.='&buchungsnummern='.$_GET['buchungsnummern']; +if(isset($_GET['stg_kz'])) + $params.='&stg_kz='.$_GET['stg_kz']; +if(isset($_GET['ss'])) + $params.='&ss='.$_GET['ss']; +if(isset($_GET['abschlusspruefung_id'])) + $params.='&abschlusspruefung_id='.$_GET['abschlusspruefung_id']; +if(isset($_GET['typ'])) + $params.='&typ='.$_GET['typ']; + + +//Berechtigung pruefen +$rechte = new benutzerberechtigung($conn); +$rechte->getBerechtigungen($user); + +//if(!$rechte->isBerechtigt('admin',$stg_kz)) +// die("Keine Berechtigung"); + +$xml_url=XML_ROOT.$xml.$params; +//echo $xml_url; +// Load the XML source +$xml_doc = new DOMDocument; + +if(!$xml_doc->load($xml_url)) + die('unable to load xml'); +//echo ':'.$xml_doc->saveXML().':'; + +//XSL aus der DB holen +$qry = "SELECT text FROM public.tbl_vorlagestudiengang WHERE (studiengang_kz=0 OR studiengang_kz='".addslashes($xsl_stg_kz)."') AND vorlage_kurzbz='$xsl' ORDER BY studiengang_kz DESC, version DESC LIMIT 1"; + +if(!$result = pg_query($conn, $qry)) + die('Fehler beim laden der Vorlage'.pg_errormessage($conn)); +if(!$row = pg_fetch_object($result)) + die('Vorlage wurde nicht gefunden'.$qry); + +// Load the XSL source +$xsl_doc = new DOMDocument; +//if(!$xsl_doc->load('../../../../xsl/collection.xsl')) +if(!$xsl_doc->loadXML($row->text)) + die('unable to load xsl'); + +// Configure the transformer +$proc = new XSLTProcessor; +$proc->importStyleSheet($xsl_doc); // attach the xsl rules + +$buffer = $proc->transformToXml($xml_doc); +//in $buffer steht nun das xsl-fo file mit den daten +$buffer = ''.substr($buffer, strpos($buffer,"\n"),strlen($buffer)); +//$buffer = html_entity_decode($buffer); +//echo "buffer: $buffer"; + +//Pdf erstellen +$fo2pdf = new XslFo2Pdf(); + +//wenn uid gefunden wird, dann den Nachnamen zum Dateinamen dazuhaengen +$nachname=''; +if(isset($_GET['uid']) && $_GET['uid']!='') +{ + $uid = str_replace(';','',$_GET['uid']); + $qry = "SELECT nachname FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'"; + + if($result = pg_query($conn, $qry)) + { + if($row = pg_fetch_object($result)) + { + $nachname = '_'.$row->nachname; + } + } +} +$filename=$xsl.$nachname; + +if (!isset($_REQUEST["archive"])) +{ + if (!$fo2pdf->generatePdf($buffer, $filename, "D")) + { + echo('Failed to generate PDF'); + } +} +else +{ + + $filename = $user; + if (!$fo2pdf->generatePdf($buffer, $filename, 'F')) + { + echo('Failed to generate PDF'); + } + $file = "/tmp/".$filename.".pdf"; + $handle = fopen($file, "rb"); + $string = fread($handle, filesize($file)); + fclose($handle); + unlink($file); + + $hex=""; + for ($i=0;$iperson_id; + $titel = "Zeugnis_".strtoupper($row->typ).strtoupper($row->kurzbz)."_".$row->semester; + $bezeichnung = "Zeugnis ".strtoupper($row->typ).strtoupper($row->kurzbz)." ".$row->semester.". Semester"; + } + else + { + $echo = 'Datensatz wurde nicht gefunden'; + + } + } + + + $akte = new akte($conn); + $akte->person_id = $person_id; + $akte->dokument_kurzbz = "Zeugnis"; + $akte->inhalt = $hex; + $akte->mimetype = "application/octet-stream"; + $akte->erstelltam = $heute; + $akte->gedruckt = true; + $akte->titel = $titel.".pdf"; + $akte->bezeichnung = $bezeichnung; + $akte->updateamum = ""; + $akte->updatevon = ""; + $akte->insertamum = date('Y-m-d h:m:s'); + $akte->insertvon = $user; + $akte->ext_id = ""; + $akte->uid = $_REQUEST["uid"]; + $akte->new = true; + if (!$akte->save('new')) + return true; + else + return false; +} +?> \ No newline at end of file