#!/usr/bin/perl use CGI; $query = new CGI; umask 007; $user = $query->remote_user(); $http_home = "/home/mha/public_html/server"; $fax_home = "$http_home/fax"; @file = $query->param('file'); $printer = $query->param('printer'); $from_page = $query->param('from-page'); $to_page = $query->param('to-page'); $pages = $query->param('pages'); $select = $query->param('select'); $type = $query->param('type'); $server = $query->param('server'); $service = $query->param('service'); $password = $query->param('passwd'); $private = $query->param('private'); $coverpage = ""; if ($private eq "true") { $home = "$fax_home/$user"; } else { $home = "$fax_home/admin"; } $dbfile="$home/incoming-db"; if ($to_page < $from_page) { $tmp = $from_page; $from_page = $to_Page; $to_page = $from_page; } if ($to_page > $pages) {$to_page = $pages;} if ($from_page < 1) {$from_page = 1;} print $query->header; print "\nPrint Fax\n\n"; print "\n"; print "\n"; print "
        \n"; if ($private eq "true") { print "Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | Forward | Print | Delete\n
\n"; } else { if ($private eq "true") { if (-e "$home/processing-@file") { print "Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; } else { print "Nutzer: $user | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; } } else { if (-e "$home/processing-@file") { print "Admin: $user | NutzerAdmin | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; } else { print "Admin: $user | NutzerAdmin | Persönl. Einstellungen | FaxHome | Inbox | View | Forward | Print | Delete\n
\n"; } } } print "

Drucke Fax

\n
\n"; $t = ""; for ($i=$from_page; $i<=$to_page; $i++) { $t.=" -p $i"; } print "

Ausgabe des Konvertierungs- und Druckprogramms:

\n"; print "
\n";
if ($select eq "public") {
	if ($printer eq "HP LaserJet 1. Etage") {
		#print `/usr/local/bin/fax2ps $t -S -W 8.26 -H 11.3 $home/@file | /usr/local/bin/gs -q -sPAPERSIZE=a4 -dNOPAUSE -sDEVICE=ljet4 -sOutputFile=$home/@file.ljet4 -`;
		#print `/usr/bin/lp -onb -dchlaser4 $home/@file.ljet4`;
		print `/usr/local/bin/fax2ps $t -S -W 8.26 -H 11.3 $home/@file >$home/@file.ps`;
		print `/usr/bin/lp -dchlaser4_ps $home/@file.ps`;
		system "rm -f $home/@file.ljet4";
		system "rm -f $home/@file.ps";
	} elsif ($printer eq "HP LaserJet 3. Etage") {
		print `/usr/local/bin/fax2ps $t -S -W 8.26 -H 11.3 $home/@file | /usr/bin/lp -onb -dchlaser4m`;
	} elsif ($printer eq "Fax im Sekretariat") {
		print `/usr/local/bin/sendfax -h fax.chemnitz.debis-sfi.de -n -d 159 $home/@file 2>&1`;
	}
} else {
	# select is "private"
	$printer="Arbeitsplatzdrucker";
	$res="";
	$_=$type;
        SWITCH: {
                /LaserJet\ 3/ && do   {$type="ljet3";};
                /LaserJet\ 4/ && do   {$type="ljet4";};
                /LaserJet\ 4L/ && do   {$type="ljet4";$res="-r300";};
                /HP.+500/     && do   {$type="djet500";};
                /HP.+1200C/   && do   {$type="pjxl300";};
		/Postscript/  && do   {$type="psmono";}
        }
	system "/usr/local/bin/fax2ps $t -S -W 8.26 -H 11.3 $home/@file >$home/fax-$$.ps";
	if ($type ne "ps") {
        	print "GS: ",`/usr/local/bin/gs -q -sPAPERSIZE=a4 -dNOPAUSE -dSAFER $res -sDEVICE=$type -sOutputFile=$home/fax-$$.$type $home/fax-$$.ps -`,"\n";
	}
	print "PRINT: ",`cat $home/fax-$$.$type | $http_home/bin/smbprint $server $service $password`,"\n";
	system "rm -f $home/fax-$$.*";
}
print "
\n
\n"; print "Fax wird auf $printer gedruckt.
\n"; print "
\n
\nChemnitz FaxServer; ",`date`,"
\n"; print "
\n"; print $query->end_html; system "echo \"`date '+%a %e.%b %X'`: Gedruckt (Seiten $from_page-$to_page) von `cat $fax_home/admin/users|grep :$user|awk -F: '{print \$1}'`\" >>$home/@file.log"; while (-e "$home/faxdblock") { sleep 2; } system "touch $home/faxdblock"; system "cat $dbfile | sed -e '/@file/ s/[^|]*\$/PRINTED/' >$dbfile.tmp"; system "mv $dbfile.tmp $dbfile"; system "rm $home/faxdblock";