--- loncom/interface/printout.pl 2003/08/14 14:46:52 1.33
+++ loncom/interface/printout.pl 2003/10/16 15:30:43 1.38
@@ -1,9 +1,39 @@
#!/usr/bin/perl
+# CGI-script to run LaTeX, dvips, ps2ps, ps2pdf etc.
+#
+# $Id: printout.pl,v 1.38 2003/10/16 15:30:43 sakharuk Exp $
+#
+# Copyright Michigan State University Board of Trustees
+#
+# This file is part of the LearningOnline Network with CAPA (LON-CAPA).
+#
+# LON-CAPA is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# LON-CAPA is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with LON-CAPA; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# /home/httpd/html/adm/gpl.txt
+#
+# http://www.lon-capa.org/
+#
+
+use File::Path;
use IO::File;
use Image::Magick;
print "Content-type: text/html\n\n";
print "
\n";
my ($texfile,$laystyle,$numberofcolumns,$selectionmade) = split(/&/,$ENV{'QUERY_STRING'});
+ my $advans_role=0;
+ if ($selectionmade>=10000) {$selectionmade=$selectionmade/10000; $advans_role=1;}
my $figfile = $texfile;
$figfile =~ s/^([^\.]+printout)[^t]+\.tex/$1\.dat/;
my $duefile = $texfile;
@@ -19,8 +49,11 @@ use Image::Magick;
my $eps_f = $not_eps;
$eps_f =~ s/\.[^.]*$/\.eps/i;
$_ = $eps_f;
- m/\/([^\/]+)$/;
+ m/\/home\/httpd\/html\/res\/(.+)/;
$eps_f = '/home/httpd/prtspool/'.$1;
+ my $path=$eps_f;
+ $path=~s/\/([^\/]+)\.eps$//;
+ File::Path::mkpath($path,0,0777);
my $image = Image::Magick->new;
$not_eps =~ s/^\s+//;
$not_eps =~ s/\s+$//;
@@ -40,7 +73,6 @@ use Image::Magick;
}
}
}
- unlink $figfile;
}
#print "$texfile\n"; #name of the tex file for debugging only
if (-e $texfile) {
@@ -87,7 +119,27 @@ use Image::Magick;
if ($sygnal) {
print "$content_of_file[$i]
";
}
- }
+ }
+ if ($advans_role) {
+ print "The link to ";
+ $logfilename=~s/\/home\/httpd//;
+ print "Your log file ";
+ print "\n";
+ #link tooriginal LaTeX file (included according Michael Hamlin desire)
+ my $tex_temporary_file=IO::File->new($texfile) || die "Couldn't open file for reading: $!\n";
+ my @tex_content_of_file = <$tex_temporary_file>;
+ close $tex_temporary_file;
+ my $body_tex_file = join(' ',@tex_content_of_file);
+ $texfile =~ s/\.tex$/aaaaa\.html/;
+ $tex_temporary_file = IO::File->new('>'.$texfile);
+ print $tex_temporary_file 'LOGFILE'.$body_tex_file.'
'."\n";
+ print "
";
+ print "The link to ";
+ $texfile=~s/\/home\/httpd//;
+ print "Your original LaTeX file ";
+ print "\n";
+ }
+
} elsif ($body_log_file=~m//) {
my $whereitbegins = index $body_log_file,'';
print "You are running LaTeX in the batch mode.";
@@ -95,7 +147,7 @@ use Image::Magick;
my $tempobegin=$whereitbegins;
$whereitbegins = rindex $body_log_file,'STAMPOFPASSEDRESOURCESTART',$whereitbegins;
my $whereitends = index $body_log_file,'STAMPOFPASSEDRESOURCEEND',$whereitbegins;
- print "
It has found an error in".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)." and corrected it.\n";
+ print "
It has found an error in".substr($body_log_file,$whereitbegins+26,$whereitends-$whereitbegins-26)."
and corrected it.\n";
print "Usually this correction is valid but you probably need to check the indicated resource one more time and implement neccessary corrections by yourself.\n";
$whereitbegins = index $body_log_file,'',$tempobegin+10;
}
@@ -132,11 +184,26 @@ use Image::Magick;
# unlink @garb;
unlink $duefile;
print "Your PDF document";
- print "
";
- print "The link to ";
- $logfilename=~s/\/home\/httpd//;
- print "Your log file ";
- print "\n";
+ if ($advans_role) {
+ print "
";
+ print "The link to ";
+ $logfilename=~s/\/home\/httpd//;
+ print "Your log file ";
+ print "\n";
+ #link tooriginal LaTeX file (included according Michael Hamlin desire)
+ my $tex_temporary_file=IO::File->new($texfile) || die "Couldn't open file for reading: $!\n";
+ my @tex_content_of_file = <$tex_temporary_file>;
+ close $tex_temporary_file;
+ my $body_tex_file = join(' ',@tex_content_of_file);
+ $texfile =~ s/\.tex$/aaaaa\.html/;
+ $tex_temporary_file = IO::File->new('>'.$texfile);
+ print $tex_temporary_file 'LOGFILE'.$body_tex_file.'
'."\n";
+ print "
";
+ print "The link to ";
+ $texfile=~s/\/home\/httpd//;
+ print "Your original LaTeX file ";
+ print "\n";
+ }
}
} else {
#LaTeX successfully parsed tex file