php Library
LaTeXbrief
Keine Erläuterungen gefunden.
<?php session_start(); include 'globals.php'; include 'CMS.php'; include 'DB.php'; #define("DIR", "./tmp/"); define("DIR", "./LaTeX/"); $flag=3; $fname = $_POST['fname']; $Name = $_POST['Name']; $Strasse = $_POST['Strasse']; $Ort = $_POST['Ort']; $myref = $_POST['myref']; if (empty($myref)){$myref=$_GET['myref'];} $ymail = $_POST['ymail']; $yref = $_POST['yref']; $Betreff = $_POST['Betreff']; $Opening = $_POST['Opening']; $Brief = $_POST['Brief']; $Closing = $_POST['Closing']; $Signature = $_POST['Signature']; $Anlage = $_POST['Anlage']; $counter=0; if (!empty($_POST['SB'])){ $allMyref=explode(",",$myref); $counter=count($allMyref); } kopf($flag); echo "<h1>Briefpapier</h1>"; if (empty($myref)){ $myref=$_GET[MitglNr]; $counter=0; echo "<p><u>Du kannst für externe Briefe eine Adresse angeben, oder für interne die Mitgliedsnummer.</u></p>"; } if ($counter==0){ #einfacher Brief $latex=composeLaTeX($Name,$Strasse,$Ort,$myref,$ymail,$yref,$Betreff,$Opening,$Brief,$Closing,$Signature,$Anlage); if (strlen($latex)>150){ writeLaTeX($latex,$fname,""); } }else{ #Serienbrief for($i=0;$i<$counter;$i++){ $thisFname=$fname."_".$i; $entry=getKarteikarte($allMyref[$i]); $Name=$entry[2]." ".$entry[3]; $Strasse=$entry[7]; $Ort=$entry[8]." ".$entry[9]; $thisOpening=substr($Opening,0,strlen($Opening)-1)." ".$Name.","; $latex=composeLaTeX($Name,$Strasse,$Ort,$allMyref[$i],$ymail,$yref,$Betreff,$thisOpening,$Brief,$Closing,$Signature,$Anlage); writeLaTeX($latex,$thisFname,$i); } } editLaTeX($fname,$Name,$Strasse,$Ort,$myref,$ymail,$yref,$Betreff,$Opening,$Brief,$Closing,$Signature,$Anlage); fuss($flag); #==================================================== function composeLaTeX($Name,$Strasse,$Ort,$myref,$ymail,$yref,$Betreff,$Opening,$Brief,$Closing,$Signature,$Anlage){ if (!empty($myref)){ $TEXmyref="\myref{".$myref."}\n"; }; if (!empty($yref)){ $TEXyref="\yref{".$yref."}\n"; }; if (!empty($ymail)){ $TEXymail="\ymail{".$ymail."}\n"; }; if (!empty($Anlage)){ $TEXAnlage="\encl{".$Anlage."}\n"; }; if (empty($Signature)){ $Signature = "\par\Signatur{".$Closing."}\n"; }else{ $Signature = "\par\Signatur{".$Closing."}\\\\[1cm] \n".$Signature."\n"; }; $head = "\documentclass[german,12pt]{BVSM}\n\pagestyle{headings}\n\begin{document}\n"; $TEXAdresse = "\begin{letter}{".$Name."\\\\".$Strasse."\\\\".$Ort."}\n"; $TEXBetreff = "\subject{".$Betreff."}\n"; $TEXOpening = "\opening{".$Opening."}\n"; $foot = "\end{letter}\n\end{document}\n"; $latex = $head.$TEXAdresse.$TEXmyref.$TEXyref.$TEXymail.$TEXBetreff.$TEXOpening.$Brief."\n".$Signature.$Anlage.$foot; #$latex = stripcslashes($latex); #$latex=str_replace("\\\\","BS",$latex); #$latex=ereg_replace('\\\\','/',$latex); return $latex; } function writeLaTeX($latex,$fname,$i){ $filename=DIR.$fname.".tex"; $handle = fopen($filename, "w"); fwrite($handle, $latex); fclose($handle); $toexecute="pdflatex $filename"; $toexecute="cd ".DIR." && pdflatex ".$fname.".tex"; exec($toexecute); #get error messages $filename=DIR.$fname.".log"; $toexecute="tail -5 ".$filename." > ".DIR."errors.txt"; echo $toexecute; $filename=DIR."errors.txt"; $errormessages=array(); $handle = fopen($filename, "r"); while(!feof($handle)){ $i=$i+1; echo "<br>".$i." ".$line; #$line = fgets( $handle, 518 ); #array_push($errormessages,$line); if ($i>1000){ echo "logfile: read impossible!";exit(1); } } fclose($handle); $dim=count($errormessages); $errors=""; for($i=$dim-10;$i<$dim;$dim++){ $errors.=$errormessages[$i]; } echo $errors; $rmname = "cd ".DIR." && rm ".$fname.".aux && rm ".$fname.".log && rm ".$fname.".out && rm ./.tex"; exec($rmname); echo "<a class='gross' href='".DIR.$fname.".pdf' target='pdf'>show PDF ".$i."</a><br>"; } function editLaTeX($fname,$Name,$Strasse,$Ort,$myref,$ymail,$yref,$Betreff,$Opening,$Brief,$Closing,$Signature,$Anlage){ echo "<form style='width:600px' action='brief.php' method='post'>"; if (empty($fname)){ $fname=date("Y-m-d",mktime(0, 0, 0, date("m") , date("d"), date("Y"))); } echo "<p>Dateiname:<br> <input name='fname' type='text' size='30' maxlength='50' value='".$fname."'>.tex<br> <em>Bitte nimm etwas sugestives wie 'Bundestag_2004-03-17.tex' für ein Anschreiben an den Bundestag.</em></p>"; echo "<p>Adresse:<br> <input name='Name' type='text' size='50' maxlength='50' value='".$Name."'><br> <input name='Strasse' type='text' size='50' maxlength='50' value='".$Strasse."'><br> <input name='Ort' type='text' size='50' maxlength='50' value='".$Ort."'><br> <em>Solltest du weitere Zeilen benötigen, funktioniert das mit:</em> <tt>Name <strong>\\\\</strong> Firma</tt>.</p>"; echo "<p>Mitgliedsnummer:<br> <input name='myref' type='text' size='50' maxlength='50' value='".$myref."'><br> <em>Bei Schreiben an ein Mitglied sollte hier die entsprechende Mitgliedsnummer eingetragen werden. Falls du mehrere durch Kommata getrennt angibst, wird hieraus ein Serienbrief.</em></p>"; echo "<p>Ihr Schreiben vom:<br> <input name='ymail' type='text' size='50' maxlength='50' value='".$ymail."'><br> <em>Bei Antwort auf ein Schreiben sollte hier das Datum des Schreibens aufgeführt werden.</em></p>"; echo "<p>Ihr Zeichen:<br> <input name='yref' type='text' size='50' maxlength='50' value='".$yref."'><br> <em>Dies kann eine Kunden- oder Vereinsregisternummer sein.</em></p>"; echo "<p>Betreff:<br> <input name='Betreff' type='text' size='50' maxlength='50' value='".$Betreff."'><br> <em>Idealerweise nicht länger als eine Zeile.</em></p>"; if (empty($Opening)){$Opening="Sehr geehrte Damen und Herrn,";} echo "<p>Opening:<br> <input name='Opening' type='text' size='50' maxlength='50' value='".$Opening."'><br> <em>Im Zweifelsfall lieber siezen.</em></p>"; if (empty($Brief)){ $Brief="Hier kannst du deinen Brief schreiben. Links im Menü findest du eine kurze Übersicht einiger LaTeX-Sonderzeichen. Auch nach Abschicken hast du noch die Möglichkeit, den Text zu korrigieren."; } echo "<textarea name='Brief' cols='70' rows='20'>".$Brief."</textarea>"; if (empty($Closing)){$Closing="Mit freundlichen Grüßen,";} echo "<p>Closing:<br> <input name='Closing' type='text' size='50' maxlength='50' value='".$Closing."'></p>"; echo "<p>Signatur:<br> <input name='Signature' type='text' size='50' maxlength='50' value='".$Signature."'><br> <em>Wenn du den Brief 'nur' unterschreiben willst, kannst du dieses Feld auch leer lassen.</em></p>"; echo "<p>Anlage:<br> <input name='Anlage' type='text' size='50' maxlength='50' value='".$Anlage."'><br> <em>Gegebenenfalls leer lassen.</em></p>"; echo "<table width='100%'><tr><td><INPUT TYPE=submit VALUE='Erzeuge PDF'> </td><td align='right'><INPUT TYPE=submit name='SB' VALUE='Serienbrief'></td></tr></table></form>"; echo "<p><em>Bei Serienbriefen kann du dir zunächst per <tt>Erzeuge PDF</tt> ein Resultat angucken und korrigieren und erzeugst dann per <tt>Serienbrief</tt> alle Exemplare, die du dann nacheinander runterladen und drucken kannst.</em></p>"; } ?>
Index of Library
Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.